生成数字
现在让我们使用这个变分自编码器来生成看起来像手写数字的图像。 我们所需要做的就是训练模型,然后从高斯分布中对随机编码进行采样并对它们进行解码。
import numpy as npn_digits = 60n_epochs = 50batch_size = 150with tf.Session() as sess:init.run()for epoch in range(n_epochs):n_batches = mnist.train.num_examples // batch_sizefor iteration in range(n_batches):X_batch, y_batch = mnist.train.next_batch(batch_size)sess.run(training_op, feed_dict={X: X_batch})codings_rnd = np.random.normal(size=[n_digits, n_hidden3])outputs_val = outputs.eval(feed_dict={hidden3: codings_rnd})
现在我们可以看到由autoencoder生成的“手写”数字是什么样的(参见图15-12):
for iteration in range(n_digits):plt.subplot(n_digits, 10, iteration + 1)plot_image(outputs_val[iteration])

