TuneLayer 实现 stacked denoising autoencoder

来源:互联网 发布:淘宝日本直邮可信吗 编辑:程序博客网 时间:2024/05/22 06:39
theano官网有实现 denoising autoencoder 的class,但训练 autoencoder 只是初始化步骤。
最后我们要把 autoencoder 叠加起来,fine tune 。
TuneLayer 有 ReconLayer,专门对 DenseLayer 进行预训练的。使用方法如下。
https://github.com/zsdonghao/tunelayer
# Define the networknetwork = tl.layers.InputLayer(x, name='input_layer')# denoise layer for Autoencodersnetwork = tl.layers.DropoutLayer(network, keep=0.5, name='denoising1')# 1st layernetwork = tl.layers.DropoutLayer(network, keep=0.8, name='drop1')network = tl.layers.DenseLayer(network, n_units=800, act = tf.nn.relu, name='relu1')x_recon1 = network.outputsrecon_layer1 = tl.layers.ReconLayer(network, x_recon=x, n_units=784, act = tf.nn.softplus, name='recon_layer1')# 2nd layernetwork = tl.layers.DropoutLayer(network, keep=0.5, name='drop2')network = tl.layers.DenseLayer(network, n_units=800, act = tf.nn.relu, name='relu2')recon_layer2 = tl.layers.ReconLayer(network, x_recon=x_recon1, n_units=800, act = tf.nn.softplus, name='recon_layer2')# 3rd layernetwork = tl.layers.DropoutLayer(network, keep=0.5, name='drop3')network = tl.layers.DenseLayer(network, n_units=10, act = tl.activation.identity, name='output_layer')sess.run(tf.initialize_all_variables())# Print all parameters before pre-trainnetwork.print_params()# Pre-train Layer 1recon_layer1.pretrain(sess, x=x, X_train=X_train, X_val=X_val, denoise_name='denoising1', n_epoch=100, batch_size=128, print_freq=10, save=True, save_name='w1pre_')# Pre-train Layer 2recon_layer2.pretrain(sess, x=x, X_train=X_train, X_val=X_val, denoise_name='denoising1', n_epoch=100, batch_size=128, print_freq=10, save=False)# Start training...
tlayer 的前身是 TensorLayer。
https://github.com/zsdonghao/tlayer
tlayer 有 read the docs ,但因为它现在还没正式推广,所以打开readthedocs 很多API描述看不到。不过我发现可以在 github 上下载docs,打开 html 文件夹,可以在本机阅读API文档。
http://tensorlayer.readthedocs.io
0 0