1. 程式人生 > >TensorFlow之神經網路簡單實現MNIST資料集分類

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