TensorFlowを入れたらまずはMNISTを動かしてみよう

前回はTensorFlowの導入を行いました。それでは早速基本的なプログラムを動かしてみましょう。JavaやC言語の参考書を見るとまずはじめに”Hellow World”の表示をやると思います。それと同じように機械学習の分野にも基本的なチュートリアルが存在します。それはMNISTです。

MNISTとはそもそも何なのか

MNISTはMixed National Institute of Standards and Technologyの略で、簡単に言うと手書きの数字の画像がたくさん入ったデータベースのことです。機械学習やDeepLearningなどの分野で幅広く使われています。

早速実行してみよう

英語ですがチュートリアルの原文はここにあります。

実行準備

まずはMNISTを使うのにinput_data.pyというファイルが必要となるのでダウンロードしておいてください。ダウンロードが終了したら、tensorflow_mnist.pyと同じディレクトリに保存します。

実行するメインのプログラムが下記のプログラムになります。

###File name:tensorflow_mnist.py

import input_data
import tensorflow as tf

mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)

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

x = tf.placeholder("float", [None, 784])

y = tf.nn.softmax(tf.matmul(x, W) + b)

y_ = tf.placeholder("float", [None,10])

cross_entropy = -tf.reduce_sum(y_ * tf.log(y))

train_step = tf.train.GradientDescentOptimizer(0.005).minimize(cross_entropy)

sess = tf.Session()

init = tf.initialize_all_variables()
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})

correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_, 1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))

print sess.run(accuracy, feed_dict={x: mnist.test.images,y_:mnist.test.labels})

端末で下記のコマンドを打ち実行する

$ python tensorflow-mnist.py

そうすると下記のような出力がされれば実行成功です。
Extracting MNIST_data/train-images-idx3-ubyte.gz
Extracting MNIST_data/train-labels-idx1-ubyte.gz
Extracting MNIST_data/t10k-images-idx3-ubyte.gz
Extracting MNIST_data/t10k-labels-idx1-ubyte.gz
I tensorflow/core/common_runtime/local_device.cc:25] Local device intra op parallelism threads: 2
I tensorflow/core/common_runtime/local_session.cc:45] Local session inter op parallelism threads: 2
0.9178

スポンサーリンク
レンダリング大
レンダリング大

シェアする

  • このエントリーをはてなブックマークに追加

フォローする