#这里以最具代表性的去噪自编码器为例。#导入MNIST数据集
importnumpy as npimportsklearn.preprocessing as prepimporttensorflow as tffrom tensorflow.examples.tutorials.mnist importinput_data#这里使用一种参数初始化方法xavier initialization,需要对此做好定义工作。#Xaiver初始化器的作用就是让权重大小正好合适。#这里实现的是标准均匀分布的Xaiver初始化器。
def xavier_init(fan_in, fan_out, constant=1):"""目的是合理初始化权重。
参数:
fan_in --行数;
fan_out -- 列数;
constant --常数权重,条件初始化范围的倍数。
return 初始化后的权重tensor."""low= -constant * np.sqrt(6.0 / (fan_in +fan_out))
high= constant * np.sqrt(6.0 / (fan_in +fan_out))returntf.random_uniform((fan_in, fan_out),
minval=low, maxval=high,
dtype=tf.float32)#定义一个去噪的自编码类
classAdditiveGaussianNoiseAutoencoder(object):"""__init__() :构建函数;
n_input : 输入变量数;
n_hidden : 隐含层节点数;
transfer_f