由于毕设相关,近期看了一些变分自编码(VAE)的东西,将一些理解记录在这,不对的地方还请指出。
在论文《Auto-Encoding Variational Bayes》中介绍了VAE。
附上自己的笔记(字体较烂,勿喷):
训练好的VAE可以用来生成图像。
在Keras 中提供了一个VAE的Demo:variational_autoencoder.py
为了输出网络形状,我将代码稍微改了一下,并注释了一些自己的理解。
代码实验MNIST手写数字数据集
'''This script demonstrates how to build a variational autoencoder with Keras.
Reference: "Auto-Encoding Variational Bayes" https://arxiv.org/abs/1312.6114
'''
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
from keras.layers import Input, Dense, Lambda
from keras.models import Model
from keras import backend as K
from keras import objectives
from keras.datasets import mnist
from keras.utils.visualize_util import plot
import sys
saveout = sys.stdout
file = open('variati