In [ ]:
import numpy as np
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
print(tf.__version__)
TensorFlow 付属のモジュールを使って MNIST データセットをダウンロードします。
In [ ]:
mnist = input_data.read_data_sets("MNIST_data/", one_hot=False)
x_train = mnist.train.images
y_train = np.array(mnist.train.labels, dtype=np.int)
x_test = mnist.test.images
y_test = np.array(mnist.test.labels, dtype=np.int)
モデルの作り方は scikit-learn とほぼ同じになるように設計されています。
In [ ]:
feature_columns = [tf.contrib.layers.real_valued_column("", dimension=768)]
clf = tf.contrib.learn.DNNClassifier(
feature_columns=feature_columns,
hidden_units=[10, 20, 10],
n_classes=10,
model_dir="./mnist_model"
)
# clf = tf.contrib.learn.SKCompat(clf)
Scikit-learn と同じく fit
メソッドを使って学習を行います。
In [ ]:
clf.fit(x=x_train, y=y_train, steps=1000, batch_size=100)
学習済みのモデルに新たなデータを渡して予測をしてもらうときは predict メソッドを使います。
In [ ]:
print(list(clf.predict(x=x_test))[:30])
テストデータで精度を計算させてみます。
In [ ]:
print("Test Accuracy: {}".format(np.sum(np.array(list(clf.predict(x=x_test))) == y_test) / float(len(y_test))))