17. Open Cloud Campus
17
「TensorFlow Tutorialの数学的背景」クイックツアー
サンプルコードの解説
Tutorialのサンプルコードを見ると、前述の計算式が、ほぼそのままコード化されているこ
とがわかります。
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/tutorials/mnist/mnist_softmax.py
# Create the model
x = tf.placeholder(tf.float32, [None, 784])
W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))
y = tf.nn.softmax(tf.matmul(x, W) + b)
# Define loss and optimizer
y_ = tf.placeholder(tf.float32, [None, 10])
cross_entropy = -tf.reduce_sum(y_ * tf.log(y))
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)
# Train
tf.initialize_all_variables().run()
for i in range(1000):
batch_xs, batch_ys = mnist.train.next_batch(100)
train_step.run({x: batch_xs, y_: batch_ys})
# Test trained model
correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_, 1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
print(accuracy.eval({x: mnist.test.images, y_: mnist.test.labels}))
トレーニングデータ を入れる箱
トレーニングデータ を入れる箱
「勾配降下法」を用いて
パラメータを最適化
18. Open Cloud Campus
18
「TensorFlow Tutorialの数学的背景」クイックツアー
サンプルコードの解説
実行結果・・・。
正答率をさらに上げるには何が必要・・・?
# time python mnist_softmax.py
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
I tensorflow/core/common_runtime/local_device.cc:40] Local device intra op parallelism threads: 16
I tensorflow/core/common_runtime/direct_session.cc:58] Direct session inter op parallelism threads: 16
0.9135
real 0m5.911s
user 0m7.010s
sys 0m4.650s
テストセットに対して91%の正答率