Path: blob/master/deprecated/notebooks/flow_2d_mlp.ipynb
1192 views
Kernel: Python 3
Mapping a 2d standard Gaussian to a more complex distribution using an invertible MLP
Author: George Papamakarios
Based on the example by Eric Jang from https://blog.evjang.com/2018/01/nf1.html
Reproduces Figure 23.1 of the book Probabilistic Machine Learning: Advanced Topics by Kevin P. Murphy
Imports and definitions
In [ ]:
Create flow model
In [ ]:
Define target distribution
In [ ]:
Train model
In [ ]:
In [ ]:
Step 0, loss = 3.890
Step 100, loss = 2.155
Step 200, loss = 1.884
Step 300, loss = 1.783
Step 400, loss = 1.435
Step 500, loss = 1.248
Step 600, loss = 1.212
Step 700, loss = 1.223
Step 800, loss = 1.412
Step 900, loss = 1.269
Step 1000, loss = 1.122
Step 1100, loss = 0.997
Step 1200, loss = 0.970
Step 1300, loss = 0.940
Step 1400, loss = 1.032
Step 1500, loss = 1.028
Step 1600, loss = 0.884
Step 1700, loss = 0.972
Step 1800, loss = 1.913
Step 1900, loss = 1.150
Step 2000, loss = 0.941
Step 2100, loss = 0.834
Step 2200, loss = 1.294
Step 2300, loss = 1.011
Step 2400, loss = 0.831
Step 2500, loss = 0.988
Step 2600, loss = 0.878
Step 2700, loss = 0.917
Step 2800, loss = 0.898
Step 2900, loss = 0.741
Step 3000, loss = 0.849
Step 3100, loss = 0.880
Step 3200, loss = 0.934
Step 3300, loss = 0.739
Step 3400, loss = 0.916
Step 3500, loss = 0.943
Step 3600, loss = 0.948
Step 3700, loss = 0.943
Step 3800, loss = 1.004
Step 3900, loss = 1.116
Step 4000, loss = 1.711
Step 4100, loss = 0.907
Step 4200, loss = 1.067
Step 4300, loss = 1.030
Step 4400, loss = 0.814
Step 4500, loss = 0.867
Step 4600, loss = 1.015
Step 4700, loss = 0.914
Step 4800, loss = 0.912
Step 4900, loss = 1.047
In [ ]:
Create plot with intermediate distributions
In [ ]:
In [ ]: