'''tensorflow 多层感知机识别手写数字''
#导入数据
import tensorflow as tf
import tensorflow.tutorials.minist.input_data as input_data
minist=input_data.read_datasets('MNIST_data/',one_hot=True)
#使用layer函数
def layer(output_dim,input_dim,inputs,activation=None):
W=tf.Variable(tf.random_normal([input_dim,ouput_dim]))
b=tf.Variable(tf.random_normal([1,output_dim]))
xWb=tf.matmul(inputs,W)+b
if activation is None:
outputs=xWb
else:
outputs=activation(xWb)
return ouputs
#建立输入层
x=tf.placeholder('float',[None,784])
#建立隐藏层
h1=layer(out_dim=256,input_dim=784,inputs=x,activation=tf.nn.relu)
#建立输出层
y_predict=layer(output_dim=10,input_dim=256,inputs=h1,activation=None)
'''定义训练方式'''
#建立训练数据label真实值的placeholder
y_label=tf.placeholder('float',[None,10])
#定义损失函数
loss_function=tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=y_predict,labels=y_label))
#定义优化器
optimizer=tf.train.Adamoptimizer(learning_rate=0.001).minimize(loss_function)
'''定义评估模型准确率的方式'''
correct_prediction=tf.equal(tf.argmax(y_label,1),tf.argmax(y_predict,1))
#计算预测结果正确结果的平均值
accurary=tf.reduce_mean(tf.cast(correct_prediction,'float'))
trainEpochs=15
batchsize=100
loss_list=[];epoch_list=[];accurary_list=[]
from time import time
startTime=time()
sess=tf.Session()
sess.run(tf.global_variables_initializer())
for epoch in range(trainEpochs):
for i in range(totalBatchs):
###未完待续####