import numpy as np
import sklearn.preprocessing as prep
import tensorflow as tf
import matplotlib.pyplot as plt
from tensorflow.examples.tutorials.mnist import input_data
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
learning_rate = 0.01
training_epochs = 20
batch_size = 256
display_step = 1
examples_to_show = 10
n_hidden_units = 256
n_input_units = 784
n_output_units = n_input_units
def WeightsVariable(n_in,n_out,name_str):
return tf.Variable(tf.random_normal([n_in,n_out]),dtype=tf.float32,name=name_str)
def BiasesVariable(n_out,name_str):
return tf.Variable(tf.random_normal([n_out]),dtype=tf.float32,name=name_str)
def Encoder(x_origin,activate_func=tf.nn.sigmoid):
with tf.name_scope('Layer'):
weights = WeightsVariable(n_input_units,n_hidden_units,'weights')
biases = BiasesVariable(n_hidden_units,'biases')
x_code = activate_func(tf.add(tf.matmul(x_origin,weights),biases))
return x_code
def Decoder(x_code,activate_func):
with tf.name_scope('Layer'):
weights = WeightsVariable(n_hidden_units, n_output_units, 'weights')
biases = BiasesVariable(n_output_units, 'biases')
x_decode = activate_func(tf.add(tf.matmul(x_code, weights), biases))
return x_decode
with tf.Graph().as_default():
with tf.name_scope('X_origin'):
X_Origin = tf.placeholder(tf.float32,[None,n_input_units])
with tf.name_scope('Encoder'):
X_code = Encoder(X_Origin,activate_func=tf.nn.sigmoid)
with tf.name_scope('Decoder'):
X_decode = Decoder(X_code,activate_func=tf.nn.sigmoid)
with tf.name_scope('Loss'):
Loss = tf.reduce_mean(tf.pow(X_Origin - X_decode , 2))
with tf.name_scope('Train'):
Optimizer = tf.train.RMSPropOptimizer(learning_rate)
Train = Optimizer.minimize(Loss)
Init = tf.global_variables_initializer()
print('把计算图写入事件文件,在Tesorboard里面查看')
summary_write = tf.summary.FileWriter(logdir='logs',graph=tf.get_default_graph())
summary_write.flush()
