mnist——多层感知机

import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
mnist=input_data.read_data_sets("MNIST_data/", one_hot=True)
sess=tf.InteractiveSession()
in_units=784
h1_units=300
x=tf.placeholder(tf.float32, [None, in_units])
w1=tf.Variable(tf.truncated_normal([in_units, h1_units], stddev=0.1))
b1=tf.Variable(tf.zeros([h1_units]))
w2=tf.Variable(tf.zeros([h1_units,10]))
b2=tf.Variable(tf.zeros([10]))

//w3=tf.Variable(tf.truncated_normal([h1_units, h1_units], stddev=0.1))
//b3=tf.Variable(tf.zeros([h1_units])) keep_prob
=tf.placeholder(tf.float32) hidden1=tf.nn.relu(tf.matmul(x,w1)+b1) hidden1_drop = tf.nn.dropout(hidden1, keep_prob) //随机讲一部分节点设为0,keep_prob参数为保留数据而不置0的比例
//hidden2=tf.nn.relu(tf.matmul(hidden1_drop, w3)+ b3)
//hidden2_drop = tf.nn.dropout(hidden2, keep_prob)
//y=tf.nn.softmax(tf.matmul(hidden2_drop,w2)+b2) 多加一层; y
=tf.nn.softmax(tf.matmul(hidden1_drop,w2)+b2) y_=tf.placeholder(tf.float32,[None, 10]) cross_entropy=tf.reduce_mean(-tf.reduce_sum(y_*tf.log(y),reduction_indices=1)) train_step=tf.train.AdagradOptimizer(0.2).minimize(cross_entropy) //当多加一层时,学习率在0.2的时候能达到0.98的准确率,但是在0.3的学习率时只有0.098的准确率 tf.global_variables_initializer().run() for i in range(1000): batch_xs, batch_ys=mnist.train.next_batch(100) sess.run(train_step, feed_dict={x:batch_xs, y_:batch_ys, keep_prob: 0.5}) correct_prediction=tf.equal(tf.argmax(y, 1), tf.argmax(y_, 1)) accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32)) print(sess.run(accuracy, feed_dict={x:mnist.test.images, y_: mnist.test.labels, keep_prob: 1.0})) //训练时为防止过拟合<1,测试时为1

 

转载于:https://www.cnblogs.com/Magina-learning/p/7908126.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值