Auto-Encoder总结
自动编码器简单实用
关于自动编码器的理论,网上有很多。这里使用了一个最简单的功能:降噪。zheli
第一部分就是导入包和数据集,设置路径。
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
from tensorflow.examples.tutorials.mnist import input_data
import os
data_dir=r'C:\Users\aaa\Desktop\MINIST'
model_dir=r'C:\Users\aaa\Desktop\auto-encoder\model2'
mnist=input_data.read_data_sets(data_dir,one_hot=True)
接着是encoder部分。
#input_layer
inputs_=tf.placeholder(tf.float32,(None,28,28,1),name='input_lay')
targets=tf.placeholder(tf.float32,(None,28,28,1),name="targets")
#Encoder
#28*28*64
conv1=tf.layers.conv2d(inputs_,64,(3,3),padding='same',activation=tf.nn.relu,name="conv1")
pooling1=tf.layers.max_pooling2d(conv1,(2,2),(2,2),padding='same',name='pooling1')
#14*14*64
conv2=tf.layers.conv2d(pooling1,64,(3,3),padding='same',activation=tf.nn.relu,name="conv2")
pooling2=tf.layers.max_pooling2d(conv2,(2,2),(2,2),padding='same',name='pooling2')
#7*7*64
conv3=tf.layers.conv2d(pooling2,32,(3,3),padding='same',activation=tf.nn.relu,name="conv3")
pooling3=tf.layers.max_pooling2d(conv3,(2,2),(2,2),padding='same',name='pooling3')
#4*4*32