Last active
August 19, 2016 17:21
-
-
Save seventhskye/571cdae09ade84725dad1bb4e1f78e1a to your computer and use it in GitHub Desktop.
The beginners tutorial mnist-softmax script, from the TensorFlow website. https://www.tensorflow.org/versions/r0.10/tutorials/mnist/beginners/index.html#softmax-regressions
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# https://www.tensorflow.org/versions/r0.10/tutorials/mnist/beginners/index.html#softmax-regressions | |
# download and read in the data automatically: | |
from tensorflow.examples.tutorials.mnist import input_data | |
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True) | |
import tensorflow as tf | |
# model for handwritten digit [0-9] | |
# y = softmax(Wx + b) | |
# x is placeholder, a value that we'll input when we ask TensorFlow to run a computation. | |
# with shape [None, 784]. (Here None means that a dimension can be of any length.) | |
x = tf.placeholder(tf.float32, [None, 784]) | |
# W has a shape of [784, 10] because we want to multiply the 784-dimensional | |
# image vectors by it to produce 10-dimensional vectors of evidence for the difference classes. | |
# b has a shape of [10] so we can add it to the output. | |
W = tf.Variable(tf.zeros([784, 10])) | |
b = tf.Variable(tf.zeros([10])) | |
# y = softmax(Wx + b) | |
y = tf.nn.softmax(tf.matmul(x, W) + b) | |
# training | |
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.GradientDescentOptimizer(0.5).minimize(cross_entropy) | |
init = tf.initialize_all_variables() | |
sess = tf.Session() | |
sess.run(init) | |
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}) | |
# evaluation | |
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})) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment