TensorFlow之神经网络简单实现MNIST数据集分类
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
mnist=input_data.read_data_sets("MNIST_data",one_hot=True)
batch_size=100
n_batch=mnist.train.num_examples//batch_size
x=tf.placeholder(tf.float32,[None,784])
y=tf.placeholder(tf.float32,[None,10])
W_L1=tf.Variable(tf.zeros([784,10]))
b_L1=tf.Variable(tf.zeros([10]))
prediction=tf.nn.softmax(tf.matmul(x,W_L1)+b_L1)
loss=tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels=y,logits=prediction))
train_step=tf.train.AdagradOptimizer(0.2).minimize(loss)
correct_prediction=tf.equal(tf.argmax(y,1),tf.argmax(prediction,1))
accuracy=tf.reduce_mean(tf.cast(correct_prediction,tf.float32))
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
for e in range(100):
for batch in range(n_batch):
batch_xs,batch_ys=mnist.train.next_batch(batch_size)
sess.run(train_step,feed_dict={x:batch_xs,y:batch_ys})
acc=sess.run(accuracy,feed_dict={x:mnist.test.images,y:mnist.test.labels})
print("Iter "+str(e)+",Testing Accuracy "+str(acc))
Iter 0,Testing Accuracy 0.9026 Iter 1,Testing Accuracy 0.9106 Iter 2,Testing Accuracy 0.9129 Iter 3,Testing Accuracy 0.9176 Iter 4,Testing Accuracy 0.9207 Iter 5,Testing Accuracy 0.9212 Iter 6,Testing Accuracy 0.9202 Iter 7,Testing Accuracy 0.9228 Iter 8,Testing Accuracy 0.923 Iter 9,Testing Accuracy 0.9243 Iter 10,Testing Accuracy 0.9246 Iter 11,Testing Accuracy 0.9249 Iter 12,Testing Accuracy 0.9248 Iter 13,Testing Accuracy 0.9248 Iter 14,Testing Accuracy 0.9265 Iter 15,Testing Accuracy 0.9266 Iter 16,Testing Accuracy 0.9249 Iter 17,Testing Accuracy 0.9263 Iter 18,Testing Accuracy 0.9268 Iter 19,Testing Accuracy 0.9275 Iter 20,Testing Accuracy 0.9277
