In [2]:
import tensorflow as tf

from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("/tmp/data/", one_hot=True)


Extracting /tmp/data/train-images-idx3-ubyte.gz
Extracting /tmp/data/train-labels-idx1-ubyte.gz
Extracting /tmp/data/t10k-images-idx3-ubyte.gz
Extracting /tmp/data/t10k-labels-idx1-ubyte.gz

In [8]:
learning_rate = 0.01
training_epochs = 25
batch_size = 100
display_step = 1

X = tf.placeholder(tf.float32, [None, 784])
Y = tf.placeholder(tf.float32, [None, 10])

W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))

pred = tf.nn.softmax(tf.matmul(X, W) + b)

cost = tf.reduce_mean(-tf.reduce_sum(Y*tf.log(pred), reduction_indices=1))

optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)

init = tf.initialize_all_variables()

In [12]:
with tf.Session() as sess:
    sess.run(init)
    
    for epoch in range(training_epochs):
        avg_cost = 0.
        total_batch = int(mnist.train.num_examples/batch_size)
        
        for i in range(total_batch):
            batch_X, batch_Y = mnist.train.next_batch(batch_size)
            
            _, c = sess.run([optimizer, cost], feed_dict={X:batch_X, Y:batch_Y})
            
            avg_cost += c/total_batch
        
        if (epoch+1) % display_step == 0:
            print("epoch : "+'%04d'%(epoch+1), " cost : "+ "{:.9f}".format(avg_cost))

    print("Optimization Finished!")
    
    correct_prediction = tf.equal(tf.argmax(pred, 1), tf.argmax(Y, 1))
    
    accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
    print("Accuracy : ", accuracy.eval({X:mnist.test.images[:3000], Y: mnist.test.labels[:3000]}))


epoch : 0001  cost : 1.184190779
epoch : 0002  cost : 0.665489294
epoch : 0003  cost : 0.552929472
epoch : 0004  cost : 0.498741347
epoch : 0005  cost : 0.465565630
epoch : 0006  cost : 0.442590222
epoch : 0007  cost : 0.425520956
epoch : 0008  cost : 0.412237758
epoch : 0009  cost : 0.401422341
epoch : 0010  cost : 0.392443316
epoch : 0011  cost : 0.384804378
epoch : 0012  cost : 0.378208909
epoch : 0013  cost : 0.372414908
epoch : 0014  cost : 0.367252725
epoch : 0015  cost : 0.362749986
epoch : 0016  cost : 0.358565062
epoch : 0017  cost : 0.354910657
epoch : 0018  cost : 0.351458197
epoch : 0019  cost : 0.348318752
epoch : 0020  cost : 0.345408843
epoch : 0021  cost : 0.342732383
epoch : 0022  cost : 0.340283495
epoch : 0023  cost : 0.337931130
epoch : 0024  cost : 0.335729641
epoch : 0025  cost : 0.333681298
Optimization Finished!
Accuracy :  0.888333

In [ ]: