├── CVAE.ipynb ├── MNIST_data ├── processed │ ├── test.pt │ └── training.pt └── raw │ ├── t10k-images-idx3-ubyte │ ├── t10k-labels-idx1-ubyte │ ├── train-images-idx3-ubyte │ └── train-labels-idx1-ubyte ├── README.md ├── results ├── cvae.gif ├── reconstruction.gif ├── reconstruction_1.png ├── reconstruction_10.png ├── reconstruction_100.png ├── reconstruction_11.png ├── reconstruction_12.png ├── reconstruction_13.png ├── reconstruction_14.png ├── reconstruction_15.png ├── reconstruction_16.png ├── reconstruction_17.png ├── reconstruction_18.png ├── reconstruction_19.png ├── reconstruction_2.png ├── reconstruction_20.png ├── reconstruction_21.png ├── reconstruction_22.png ├── reconstruction_23.png ├── reconstruction_24.png ├── reconstruction_25.png ├── reconstruction_26.png ├── reconstruction_27.png ├── reconstruction_28.png ├── reconstruction_29.png ├── reconstruction_3.png ├── reconstruction_30.png ├── reconstruction_31.png ├── reconstruction_32.png ├── reconstruction_33.png ├── reconstruction_34.png ├── reconstruction_35.png ├── reconstruction_36.png ├── reconstruction_37.png ├── reconstruction_38.png ├── reconstruction_39.png ├── reconstruction_4.png ├── reconstruction_40.png ├── reconstruction_41.png ├── reconstruction_42.png ├── reconstruction_43.png ├── reconstruction_44.png ├── reconstruction_45.png ├── reconstruction_46.png ├── reconstruction_47.png ├── reconstruction_48.png ├── reconstruction_49.png ├── reconstruction_5.png ├── reconstruction_50.png ├── reconstruction_51.png ├── reconstruction_52.png ├── reconstruction_53.png ├── reconstruction_54.png ├── reconstruction_55.png ├── reconstruction_56.png ├── reconstruction_57.png ├── reconstruction_58.png ├── reconstruction_59.png ├── reconstruction_6.png ├── reconstruction_60.png ├── reconstruction_61.png ├── reconstruction_62.png ├── reconstruction_63.png ├── reconstruction_64.png ├── reconstruction_65.png ├── reconstruction_66.png ├── reconstruction_67.png ├── reconstruction_68.png ├── reconstruction_69.png ├── reconstruction_7.png ├── reconstruction_70.png ├── reconstruction_71.png ├── reconstruction_72.png ├── reconstruction_73.png ├── reconstruction_74.png ├── reconstruction_75.png ├── reconstruction_76.png ├── reconstruction_77.png ├── reconstruction_78.png ├── reconstruction_79.png ├── reconstruction_8.png ├── reconstruction_80.png ├── reconstruction_81.png ├── reconstruction_82.png ├── reconstruction_83.png ├── reconstruction_84.png ├── reconstruction_85.png ├── reconstruction_86.png ├── reconstruction_87.png ├── reconstruction_88.png ├── reconstruction_89.png ├── reconstruction_9.png ├── reconstruction_90.png ├── reconstruction_91.png ├── reconstruction_92.png ├── reconstruction_93.png ├── reconstruction_94.png ├── reconstruction_95.png ├── reconstruction_96.png ├── reconstruction_97.png ├── reconstruction_98.png ├── reconstruction_99.png ├── sample_1.png ├── sample_10.png ├── sample_100.png ├── sample_11.png ├── sample_12.png ├── sample_13.png ├── sample_14.png ├── sample_15.png ├── sample_16.png ├── sample_17.png ├── sample_18.png ├── sample_19.png ├── sample_2.png ├── sample_20.png ├── sample_21.png ├── sample_22.png ├── sample_23.png ├── sample_24.png ├── sample_25.png ├── sample_26.png ├── sample_27.png ├── sample_28.png ├── sample_29.png ├── sample_3.png ├── sample_30.png ├── sample_31.png ├── sample_32.png ├── sample_33.png ├── sample_34.png ├── sample_35.png ├── sample_36.png ├── sample_37.png ├── sample_38.png ├── sample_39.png ├── sample_4.png ├── sample_40.png ├── sample_41.png ├── sample_42.png ├── sample_43.png ├── sample_44.png ├── sample_45.png ├── sample_46.png ├── sample_47.png ├── sample_48.png ├── sample_49.png ├── sample_5.png ├── sample_50.png ├── sample_51.png ├── sample_52.png ├── sample_53.png ├── sample_54.png ├── sample_55.png ├── sample_56.png ├── sample_57.png ├── sample_58.png ├── sample_59.png ├── sample_6.png ├── sample_60.png ├── sample_61.png ├── sample_62.png ├── sample_63.png ├── sample_64.png ├── sample_65.png ├── sample_66.png ├── sample_67.png ├── sample_68.png ├── sample_69.png ├── sample_7.png ├── sample_70.png ├── sample_71.png ├── sample_72.png ├── sample_73.png ├── sample_74.png ├── sample_75.png ├── sample_76.png ├── sample_77.png ├── sample_78.png ├── sample_79.png ├── sample_8.png ├── sample_80.png ├── sample_81.png ├── sample_82.png ├── sample_83.png ├── sample_84.png ├── sample_85.png ├── sample_86.png ├── sample_87.png ├── sample_88.png ├── sample_89.png ├── sample_9.png ├── sample_90.png ├── sample_91.png ├── sample_92.png ├── sample_93.png ├── sample_94.png ├── sample_95.png ├── sample_96.png ├── sample_97.png ├── sample_98.png └── sample_99.png └── vae.py /MNIST_data/processed/test.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/MNIST_data/processed/test.pt -------------------------------------------------------------------------------- /MNIST_data/processed/training.pt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/MNIST_data/processed/training.pt -------------------------------------------------------------------------------- /MNIST_data/raw/t10k-images-idx3-ubyte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/MNIST_data/raw/t10k-images-idx3-ubyte -------------------------------------------------------------------------------- /MNIST_data/raw/t10k-labels-idx1-ubyte: -------------------------------------------------------------------------------- 1 | '                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             -------------------------------------------------------------------------------- /MNIST_data/raw/train-images-idx3-ubyte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/MNIST_data/raw/train-images-idx3-ubyte -------------------------------------------------------------------------------- /MNIST_data/raw/train-labels-idx1-ubyte: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/MNIST_data/raw/train-labels-idx1-ubyte -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ### Conditional Variational Autoencoder(CVAE) 2 | 3 | Conditional Variational Autoencoder(CVAE)[^1]是Variational Autoencoder(VAE)[^2]的扩展,在VAE中没有办法对生成的数据加以限制,所以如果在VAE中想生成特定的数据是办不到的。比如在mnist手写数字中,我们想生成特定的数字2,VAE就无能为力了。 4 | 因此,CVAE通过对潜层变量和输入数据施加约束,可以生成在某种约束条件下的数据。 5 | 6 | 在VAE中目标函数如下所示: 7 | 8 | ![\log P ( X ) - D _ { K L } [ Q ( z | X ) \| P ( z | X ) ] = E [ \log P ( X | z ) ] - D _ { K L } [ Q ( z | X ) \| P ( z ) ]{\color{Red} }](http://latex.codecogs.com/gif.latex?%5Clog%20P%20%28%20X%20%29%20-%20D%20_%20%7B%20K%20L%20%7D%20%5B%20Q%20%28%20z%20%7C%20X%20%29%20%5C%7C%20P%20%28%20z%20%7C%20X%20%29%20%5D%20%3D%20E%20%5B%20%5Clog%20P%20%28%20X%20%7C%20z%20%29%20%5D%20-%20D%20_%20%7B%20K%20L%20%7D%20%5B%20Q%20%28%20z%20%7C%20X%20%29%20%5C%7C%20P%20%28%20z%20%29%20%5D%7B%5Ccolor%7BRed%7D%20%7D) 9 | 10 | 这个目标函数(主要考虑变分下界)要使输入数据经过编码后的潜层变量的分布尽量服从某种先验分布P(Z),并且最小化重建损失。在这个模型中,编码器直接基于输入X来建模潜层变量z,而不考虑潜层输入X的类型(标签),解码器直接基于潜层变量z来重建X,假设得到X1,并没有将要获得那种类型的X1考虑在内。 11 | 12 | 对VAE进行改进使其可以基于某种约束来生成对应的样本。以mnist手写数字为例,将数字的标签y考虑在内,即编码器为Q(z|X, y), 解码器为P(X|z, y)。上述模型可以写成下面的形式 13 | 14 | ![\log P ( X | y ) - D _ { K L } [ Q ( z | X ,y ) \| P ( z | X ,y ) ] = E [ \log P ( X | z ,y ) ] - D _ { K L } [ Q ( z | X ,y ) \| P ( z | y ) ]](http://latex.codecogs.com/gif.latex?%5Clog%20P%20%28%20X%20%7C%20y%20%29%20-%20D%20_%20%7B%20K%20L%20%7D%20%5B%20Q%20%28%20z%20%7C%20X%20%2Cy%20%29%20%5C%7C%20P%20%28%20z%20%7C%20X%20%2Cy%20%29%20%5D%20%3D%20E%20%5B%20%5Clog%20P%20%28%20X%20%7C%20z%20%2Cy%20%29%20%5D%20-%20D%20_%20%7B%20K%20L%20%7D%20%5B%20Q%20%28%20z%20%7C%20X%20%2Cy%20%29%20%5C%7C%20P%20%28%20z%20%7C%20y%20%29%20%5D) 15 | 16 | 潜层变量z的分布变成了条件概率分布P(z|X,y), 对解码器来说生成的样本也变成了条件概率分布Q(X|z, y)。 17 | 18 | ### CVAE的实现 19 | 20 | 本例使用mnist数据集,在VAE的基础上将标签y进行one-hot编码,之后和数据样本进行连接作为输入,在解码时,将潜层变量z和标签y的one-hot编码进行连接,以这种方式实现上述的条件概率分布。 21 | 22 | ### 实验结果 23 | 24 | - 随机采样不同标签,模型在不同的训练阶段生成的结果如下: 25 | 26 | ![条件vae生成结果](results/cvae.gif) 27 | 28 | - 模型在训练过程中对输入样本重建的结果 29 | 30 | ![](./results/reconstruction.gif) 31 | 32 | 33 | 34 | - - - 35 | [^1]: Sohn, Kihyuk, Honglak Lee, and Xinchen Yan. “Learning Structured Output Representation using Deep Conditional Generative Models.” Advances in Neural Information Processing Systems. 2015. 36 | 37 | [^2]: Kingma, Diederik P., and Max Welling. "Auto-encoding variational bayes." arXiv preprint arXiv:1312.6114 (2013). 38 | 39 | -------------------------------------------------------------------------------- /results/cvae.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/cvae.gif -------------------------------------------------------------------------------- /results/reconstruction.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction.gif -------------------------------------------------------------------------------- /results/reconstruction_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_1.png -------------------------------------------------------------------------------- /results/reconstruction_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_10.png -------------------------------------------------------------------------------- /results/reconstruction_100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_100.png -------------------------------------------------------------------------------- /results/reconstruction_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_11.png -------------------------------------------------------------------------------- /results/reconstruction_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_12.png -------------------------------------------------------------------------------- /results/reconstruction_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_13.png -------------------------------------------------------------------------------- /results/reconstruction_14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_14.png -------------------------------------------------------------------------------- /results/reconstruction_15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_15.png -------------------------------------------------------------------------------- /results/reconstruction_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_16.png -------------------------------------------------------------------------------- /results/reconstruction_17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_17.png -------------------------------------------------------------------------------- /results/reconstruction_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_18.png -------------------------------------------------------------------------------- /results/reconstruction_19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_19.png -------------------------------------------------------------------------------- /results/reconstruction_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_2.png -------------------------------------------------------------------------------- /results/reconstruction_20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_20.png -------------------------------------------------------------------------------- /results/reconstruction_21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_21.png -------------------------------------------------------------------------------- /results/reconstruction_22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_22.png -------------------------------------------------------------------------------- /results/reconstruction_23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_23.png -------------------------------------------------------------------------------- /results/reconstruction_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_24.png -------------------------------------------------------------------------------- /results/reconstruction_25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_25.png -------------------------------------------------------------------------------- /results/reconstruction_26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_26.png -------------------------------------------------------------------------------- /results/reconstruction_27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_27.png -------------------------------------------------------------------------------- /results/reconstruction_28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_28.png -------------------------------------------------------------------------------- /results/reconstruction_29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_29.png -------------------------------------------------------------------------------- /results/reconstruction_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_3.png -------------------------------------------------------------------------------- /results/reconstruction_30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_30.png -------------------------------------------------------------------------------- /results/reconstruction_31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_31.png -------------------------------------------------------------------------------- /results/reconstruction_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_32.png -------------------------------------------------------------------------------- /results/reconstruction_33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_33.png -------------------------------------------------------------------------------- /results/reconstruction_34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_34.png -------------------------------------------------------------------------------- /results/reconstruction_35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_35.png -------------------------------------------------------------------------------- /results/reconstruction_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_36.png -------------------------------------------------------------------------------- /results/reconstruction_37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_37.png -------------------------------------------------------------------------------- /results/reconstruction_38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_38.png -------------------------------------------------------------------------------- /results/reconstruction_39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_39.png -------------------------------------------------------------------------------- /results/reconstruction_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_4.png -------------------------------------------------------------------------------- /results/reconstruction_40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_40.png -------------------------------------------------------------------------------- /results/reconstruction_41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_41.png -------------------------------------------------------------------------------- /results/reconstruction_42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_42.png -------------------------------------------------------------------------------- /results/reconstruction_43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_43.png -------------------------------------------------------------------------------- /results/reconstruction_44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_44.png -------------------------------------------------------------------------------- /results/reconstruction_45.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_45.png -------------------------------------------------------------------------------- /results/reconstruction_46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_46.png -------------------------------------------------------------------------------- /results/reconstruction_47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_47.png -------------------------------------------------------------------------------- /results/reconstruction_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_48.png -------------------------------------------------------------------------------- /results/reconstruction_49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_49.png -------------------------------------------------------------------------------- /results/reconstruction_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_5.png -------------------------------------------------------------------------------- /results/reconstruction_50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_50.png -------------------------------------------------------------------------------- /results/reconstruction_51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_51.png -------------------------------------------------------------------------------- /results/reconstruction_52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_52.png -------------------------------------------------------------------------------- /results/reconstruction_53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_53.png -------------------------------------------------------------------------------- /results/reconstruction_54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_54.png -------------------------------------------------------------------------------- /results/reconstruction_55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_55.png -------------------------------------------------------------------------------- /results/reconstruction_56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_56.png -------------------------------------------------------------------------------- /results/reconstruction_57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_57.png -------------------------------------------------------------------------------- /results/reconstruction_58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_58.png -------------------------------------------------------------------------------- /results/reconstruction_59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_59.png -------------------------------------------------------------------------------- /results/reconstruction_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_6.png -------------------------------------------------------------------------------- /results/reconstruction_60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_60.png -------------------------------------------------------------------------------- /results/reconstruction_61.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_61.png -------------------------------------------------------------------------------- /results/reconstruction_62.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_62.png -------------------------------------------------------------------------------- /results/reconstruction_63.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_63.png -------------------------------------------------------------------------------- /results/reconstruction_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_64.png -------------------------------------------------------------------------------- /results/reconstruction_65.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_65.png -------------------------------------------------------------------------------- /results/reconstruction_66.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_66.png -------------------------------------------------------------------------------- /results/reconstruction_67.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_67.png -------------------------------------------------------------------------------- /results/reconstruction_68.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_68.png -------------------------------------------------------------------------------- /results/reconstruction_69.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_69.png -------------------------------------------------------------------------------- /results/reconstruction_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_7.png -------------------------------------------------------------------------------- /results/reconstruction_70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_70.png -------------------------------------------------------------------------------- /results/reconstruction_71.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_71.png -------------------------------------------------------------------------------- /results/reconstruction_72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_72.png -------------------------------------------------------------------------------- /results/reconstruction_73.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_73.png -------------------------------------------------------------------------------- /results/reconstruction_74.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_74.png -------------------------------------------------------------------------------- /results/reconstruction_75.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_75.png -------------------------------------------------------------------------------- /results/reconstruction_76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_76.png -------------------------------------------------------------------------------- /results/reconstruction_77.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_77.png -------------------------------------------------------------------------------- /results/reconstruction_78.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_78.png -------------------------------------------------------------------------------- /results/reconstruction_79.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_79.png -------------------------------------------------------------------------------- /results/reconstruction_8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_8.png -------------------------------------------------------------------------------- /results/reconstruction_80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_80.png -------------------------------------------------------------------------------- /results/reconstruction_81.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_81.png -------------------------------------------------------------------------------- /results/reconstruction_82.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_82.png -------------------------------------------------------------------------------- /results/reconstruction_83.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_83.png -------------------------------------------------------------------------------- /results/reconstruction_84.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_84.png -------------------------------------------------------------------------------- /results/reconstruction_85.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_85.png -------------------------------------------------------------------------------- /results/reconstruction_86.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_86.png -------------------------------------------------------------------------------- /results/reconstruction_87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_87.png -------------------------------------------------------------------------------- /results/reconstruction_88.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_88.png -------------------------------------------------------------------------------- /results/reconstruction_89.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_89.png -------------------------------------------------------------------------------- /results/reconstruction_9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_9.png -------------------------------------------------------------------------------- /results/reconstruction_90.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_90.png -------------------------------------------------------------------------------- /results/reconstruction_91.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_91.png -------------------------------------------------------------------------------- /results/reconstruction_92.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_92.png -------------------------------------------------------------------------------- /results/reconstruction_93.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_93.png -------------------------------------------------------------------------------- /results/reconstruction_94.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_94.png -------------------------------------------------------------------------------- /results/reconstruction_95.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_95.png -------------------------------------------------------------------------------- /results/reconstruction_96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_96.png -------------------------------------------------------------------------------- /results/reconstruction_97.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_97.png -------------------------------------------------------------------------------- /results/reconstruction_98.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_98.png -------------------------------------------------------------------------------- /results/reconstruction_99.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/reconstruction_99.png -------------------------------------------------------------------------------- /results/sample_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_1.png -------------------------------------------------------------------------------- /results/sample_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_10.png -------------------------------------------------------------------------------- /results/sample_100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_100.png -------------------------------------------------------------------------------- /results/sample_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_11.png -------------------------------------------------------------------------------- /results/sample_12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_12.png -------------------------------------------------------------------------------- /results/sample_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_13.png -------------------------------------------------------------------------------- /results/sample_14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_14.png -------------------------------------------------------------------------------- /results/sample_15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_15.png -------------------------------------------------------------------------------- /results/sample_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_16.png -------------------------------------------------------------------------------- /results/sample_17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_17.png -------------------------------------------------------------------------------- /results/sample_18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_18.png -------------------------------------------------------------------------------- /results/sample_19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_19.png -------------------------------------------------------------------------------- /results/sample_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_2.png -------------------------------------------------------------------------------- /results/sample_20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_20.png -------------------------------------------------------------------------------- /results/sample_21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_21.png -------------------------------------------------------------------------------- /results/sample_22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_22.png -------------------------------------------------------------------------------- /results/sample_23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_23.png -------------------------------------------------------------------------------- /results/sample_24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_24.png -------------------------------------------------------------------------------- /results/sample_25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_25.png -------------------------------------------------------------------------------- /results/sample_26.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_26.png -------------------------------------------------------------------------------- /results/sample_27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_27.png -------------------------------------------------------------------------------- /results/sample_28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_28.png -------------------------------------------------------------------------------- /results/sample_29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_29.png -------------------------------------------------------------------------------- /results/sample_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_3.png -------------------------------------------------------------------------------- /results/sample_30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_30.png -------------------------------------------------------------------------------- /results/sample_31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_31.png -------------------------------------------------------------------------------- /results/sample_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_32.png -------------------------------------------------------------------------------- /results/sample_33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_33.png -------------------------------------------------------------------------------- /results/sample_34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_34.png -------------------------------------------------------------------------------- /results/sample_35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_35.png -------------------------------------------------------------------------------- /results/sample_36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_36.png -------------------------------------------------------------------------------- /results/sample_37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_37.png -------------------------------------------------------------------------------- /results/sample_38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_38.png -------------------------------------------------------------------------------- /results/sample_39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_39.png -------------------------------------------------------------------------------- /results/sample_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_4.png -------------------------------------------------------------------------------- /results/sample_40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_40.png -------------------------------------------------------------------------------- /results/sample_41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_41.png -------------------------------------------------------------------------------- /results/sample_42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_42.png -------------------------------------------------------------------------------- /results/sample_43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_43.png -------------------------------------------------------------------------------- /results/sample_44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_44.png -------------------------------------------------------------------------------- /results/sample_45.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_45.png -------------------------------------------------------------------------------- /results/sample_46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_46.png -------------------------------------------------------------------------------- /results/sample_47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_47.png -------------------------------------------------------------------------------- /results/sample_48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_48.png -------------------------------------------------------------------------------- /results/sample_49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_49.png -------------------------------------------------------------------------------- /results/sample_5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_5.png -------------------------------------------------------------------------------- /results/sample_50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_50.png -------------------------------------------------------------------------------- /results/sample_51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_51.png -------------------------------------------------------------------------------- /results/sample_52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_52.png -------------------------------------------------------------------------------- /results/sample_53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_53.png -------------------------------------------------------------------------------- /results/sample_54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_54.png -------------------------------------------------------------------------------- /results/sample_55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_55.png -------------------------------------------------------------------------------- /results/sample_56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_56.png -------------------------------------------------------------------------------- /results/sample_57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_57.png -------------------------------------------------------------------------------- /results/sample_58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_58.png -------------------------------------------------------------------------------- /results/sample_59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_59.png -------------------------------------------------------------------------------- /results/sample_6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_6.png -------------------------------------------------------------------------------- /results/sample_60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_60.png -------------------------------------------------------------------------------- /results/sample_61.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_61.png -------------------------------------------------------------------------------- /results/sample_62.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_62.png -------------------------------------------------------------------------------- /results/sample_63.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_63.png -------------------------------------------------------------------------------- /results/sample_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_64.png -------------------------------------------------------------------------------- /results/sample_65.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_65.png -------------------------------------------------------------------------------- /results/sample_66.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_66.png -------------------------------------------------------------------------------- /results/sample_67.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_67.png -------------------------------------------------------------------------------- /results/sample_68.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_68.png -------------------------------------------------------------------------------- /results/sample_69.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_69.png -------------------------------------------------------------------------------- /results/sample_7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_7.png -------------------------------------------------------------------------------- /results/sample_70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_70.png -------------------------------------------------------------------------------- /results/sample_71.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_71.png -------------------------------------------------------------------------------- /results/sample_72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_72.png -------------------------------------------------------------------------------- /results/sample_73.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_73.png -------------------------------------------------------------------------------- /results/sample_74.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_74.png -------------------------------------------------------------------------------- /results/sample_75.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_75.png -------------------------------------------------------------------------------- /results/sample_76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_76.png -------------------------------------------------------------------------------- /results/sample_77.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_77.png -------------------------------------------------------------------------------- /results/sample_78.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_78.png -------------------------------------------------------------------------------- /results/sample_79.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_79.png -------------------------------------------------------------------------------- /results/sample_8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_8.png -------------------------------------------------------------------------------- /results/sample_80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_80.png -------------------------------------------------------------------------------- /results/sample_81.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_81.png -------------------------------------------------------------------------------- /results/sample_82.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_82.png -------------------------------------------------------------------------------- /results/sample_83.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_83.png -------------------------------------------------------------------------------- /results/sample_84.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_84.png -------------------------------------------------------------------------------- /results/sample_85.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_85.png -------------------------------------------------------------------------------- /results/sample_86.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_86.png -------------------------------------------------------------------------------- /results/sample_87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_87.png -------------------------------------------------------------------------------- /results/sample_88.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_88.png -------------------------------------------------------------------------------- /results/sample_89.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_89.png -------------------------------------------------------------------------------- /results/sample_9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_9.png -------------------------------------------------------------------------------- /results/sample_90.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_90.png -------------------------------------------------------------------------------- /results/sample_91.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_91.png -------------------------------------------------------------------------------- /results/sample_92.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_92.png -------------------------------------------------------------------------------- /results/sample_93.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_93.png -------------------------------------------------------------------------------- /results/sample_94.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_94.png -------------------------------------------------------------------------------- /results/sample_95.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_95.png -------------------------------------------------------------------------------- /results/sample_96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_96.png -------------------------------------------------------------------------------- /results/sample_97.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_97.png -------------------------------------------------------------------------------- /results/sample_98.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_98.png -------------------------------------------------------------------------------- /results/sample_99.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hujinsen/pytorch_VAE_CVAE/f0de589d4b6290b14a93329669cef7142ace3122/results/sample_99.png -------------------------------------------------------------------------------- /vae.py: -------------------------------------------------------------------------------- 1 | from __future__ import print_function 2 | import argparse 3 | import torch 4 | import torch.utils.data 5 | from torch import nn, optim 6 | from torch.nn import functional as F 7 | from torchvision import datasets, transforms 8 | from torchvision.utils import save_image 9 | import os 10 | 11 | 12 | # parser = argparse.ArgumentParser(description='VAE MNIST Example') 13 | # parser.add_argument('--batch-size', type=int, default=128, metavar='N', 14 | # help='input batch size for training (default: 128)') 15 | # parser.add_argument('--epochs', type=int, default=10, metavar='N', 16 | # help='number of epochs to train (default: 10)') 17 | # parser.add_argument('--no-cuda', action='store_true', default=False, 18 | # help='enables CUDA training') 19 | # parser.add_argument('--seed', type=int, default=1, metavar='S', 20 | # help='random seed (default: 1)') 21 | # parser.add_argument('--log-interval', type=int, default=10, metavar='N', 22 | # help='how many batches to wait before logging training status') 23 | # args = parser.parse_args() 24 | 25 | 26 | project_root = '/Users/JSen/Documents/VAE/' 27 | os.chdir(project_root) 28 | 29 | no_cuda = False 30 | cuda_available = not no_cuda and torch.cuda.is_available() 31 | 32 | BATCH_SIZE = 64 33 | EPOCH = 100 34 | SEED = 8 35 | 36 | torch.manual_seed(SEED) 37 | 38 | device = torch.device("cuda" if cuda_available else "cpu") 39 | 40 | kwargs = {'num_workers': 1, 'pin_memory': True} if cuda_available else {} 41 | train_loader = torch.utils.data.DataLoader( 42 | datasets.MNIST('./MNIST_data', train=True, download=True, 43 | transform=transforms.ToTensor()), 44 | batch_size=BATCH_SIZE, shuffle=True, **kwargs) 45 | 46 | test_loader = torch.utils.data.DataLoader( 47 | datasets.MNIST('./MNIST_data', train=True, transform=transforms.ToTensor()), 48 | batch_size=BATCH_SIZE, shuffle=True, **kwargs) 49 | 50 | 51 | class VAE(nn.Module): 52 | def __init__(self): 53 | super(VAE, self).__init__() 54 | 55 | self.fc1 = nn.Linear(784, 400) 56 | self.fc21 = nn.Linear(400, 20) 57 | self.fc22 = nn.Linear(400, 20) 58 | self.fc3 = nn.Linear(20, 400) 59 | self.fc4 = nn.Linear(400, 784) 60 | 61 | def encode(self, x): 62 | h1 = F.relu(self.fc1(x)) 63 | return self.fc21(h1), self.fc22(h1) 64 | 65 | def reparameterize(self, mu, logvar): 66 | if self.training: 67 | std = torch.exp(0.5*logvar) 68 | eps = torch.randn_like(std) 69 | return eps.mul(std).add_(mu) 70 | else: 71 | return mu 72 | 73 | def decode(self, z): 74 | h3 = F.relu(self.fc3(z)) 75 | return F.sigmoid(self.fc4(h3)) 76 | 77 | def forward(self, x): 78 | mu, logvar = self.encode(x.view(-1, 784)) 79 | z = self.reparameterize(mu, logvar) 80 | return self.decode(z), mu, logvar 81 | 82 | 83 | model = VAE().to(device) 84 | 85 | optimizer = optim.Adam(model.parameters(), lr=1e-3) 86 | 87 | 88 | # Reconstruction + KL divergence losses summed over all elements and batch 89 | def loss_function(recon_x, x, mu, logvar): 90 | BCE = F.binary_cross_entropy(recon_x, x.view(-1, 784), size_average=False) 91 | 92 | # see Appendix B from VAE paper: 93 | # Kingma and Welling. Auto-Encoding Variational Bayes. ICLR, 2014 94 | # https://arxiv.org/abs/1312.6114 95 | # 0.5 * sum(1 + log(sigma^2) - mu^2 - sigma^2) 96 | KLD = -0.5 * torch.sum(1 + logvar - mu.pow(2) - logvar.exp()) 97 | 98 | return BCE + KLD 99 | 100 | 101 | def train(epoch): 102 | model.train() 103 | train_loss = 0 104 | 105 | 106 | 107 | for batch_idx, (data, _) in enumerate(train_loader): 108 | data = data.to(device) 109 | optimizer.zero_grad() 110 | 111 | recon_batch, mu, logvar = model(data) 112 | 113 | loss = loss_function(recon_batch, data, mu, logvar) 114 | 115 | loss.backward() 116 | 117 | train_loss += loss.item() 118 | 119 | optimizer.step() 120 | 121 | if batch_idx % 10 == 0: 122 | print('Train Epoch: {} [{}/{} ({:.0f}%)]\tLoss: {:.6f}'.format( 123 | epoch, 124 | batch_idx * len(data), 125 | len(train_loader.dataset), 126 | 100. * batch_idx / len(train_loader), 127 | loss.item() / len(data))) 128 | 129 | print('====> Epoch: {} Average loss: {:.4f}'.format( 130 | epoch, train_loss / len(train_loader.dataset))) 131 | 132 | 133 | def test(epoch): 134 | model.eval() 135 | test_loss = 0 136 | 137 | with torch.no_grad(): 138 | for i, (data, _) in enumerate(test_loader): 139 | data = data.to(device) 140 | 141 | recon_batch, mu, logvar = model(data) 142 | test_loss += loss_function(recon_batch, data, mu, logvar).item() 143 | 144 | if i == 0: 145 | n = min(data.size(0), 8) 146 | comparison = torch.cat([data[:n], 147 | recon_batch.view(BATCH_SIZE, 1, 28, 28)[:n]]) 148 | save_image(comparison.cpu(), 149 | 'results/reconstruction_' + str(epoch) + '.png', nrow=n) 150 | 151 | test_loss /= len(test_loader.dataset) 152 | print('====> Test set loss: {:.4f}'.format(test_loss)) 153 | 154 | 155 | for epoch in range(1, EPOCH + 1): 156 | train(epoch) 157 | test(epoch) 158 | with torch.no_grad(): 159 | sample = torch.randn(64, 20).to(device) 160 | sample = model.decode(sample).cpu() 161 | save_image(sample.view(64, 1, 28, 28), 162 | 'results/sample_' + str(epoch) + '.png') 163 | --------------------------------------------------------------------------------