通过构建一个两层降维的自编码网络,将MNIST数据集的数据特征提取出来,并通过这些特征再重建一个MNIST数据集
1.引入头文件,并加载MNIST数据
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
#导入MINST数据集
from tensorflow.examples.tutorials.mnist import input_data
minst = input_data.read_data_sets(" data/", one_hot=True)
3.定义网络模型
下面输入MNIST数据集的图片,将其像素点组成的数据(28×28=784)从784维降到256,然后降到128,最后再以同样的方式经过128再经过256,最后还原到原来图片。
learning_rate = 0.01
n_hidden_1 = 256
n_hidden_2 = 128
n_input = 784
#占位符
x = tf.placeholder("float", [None, n_input]) #输入
y = x #输出
#学习参数
weights = {
'encoder_h1': tf.Variable(tf.random_normal([n_input, n_hidden_1])),
'encoder_h2': tf.Variable(tf.random_normal([n_hidden_1, n_hidden_2])),
'decoder_h1': tf.Variable(tf.random_normal([n_hidden_2, n_hidden_1])),
'decoder_h2': tf.Variable(tf.random_normal

该博客介绍了如何构建一个两层降维的自编码网络,通过该网络对MNIST数据集进行特征提取并重构。首先,定义网络模型,包括编码和解码过程,然后使用RMSProp优化器训练模型。经过20个epoch的训练,模型能够成功地从784维降至128维并还原图像。最后,通过测试集验证模型的准确性,并展示输入与输出图像的对比,显示了自编码网络在图像重构上的效果。
最低0.47元/天 解锁文章
7452





