Join us at TensorFlow World, Oct 28-31. Use code TF20 for 20% off select passes. Register now

初心者のための TensorFlow 2.0 入門

View on TensorFlow.org Run in Google Colab View source on GitHub

このファイルはGoogle Colaboratory の notebook ファイルです。 Python プログラムはブラウザ上で直接実行されます。TensorFlowを学んだり使ったりするには最良の方法です。Google Colab のnotebookの実行方法は以下のとおりです。

  1. Pythonランタイムへの接続:メニューバーの右上で「接続」を選択します。
  2. ノートブックのコードセルをすべて実行:「ランタイム」メニューから「すべてのセルを実行」を選択します。

この他の例やガイドはTensorFlow tutorialsを参照してください。

はじめに、TensorFlowライブラリをプログラムにインポートします。

from __future__ import absolute_import, division, print_function, unicode_literals

!pip install -q tensorflow-gpu==2.0.0-rc1
import tensorflow as tf

MNIST データセットをロードして準備します。サンプルを整数から浮動小数点数に変換します。

mnist = tf.keras.datasets.mnist

(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0

層を積み重ねてtf.keras.Sequentialモデルを構築します。訓練のためにオプティマイザと損失関数を選びます。

model = tf.keras.models.Sequential([
  tf.keras.layers.Flatten(input_shape=(28, 28)),
  tf.keras.layers.Dense(128, activation='relu'),
  tf.keras.layers.Dropout(0.2),
  tf.keras.layers.Dense(10, activation='softmax')
])

model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

モデルを訓練してから評価します。

model.fit(x_train, y_train, epochs=5)

model.evaluate(x_test, y_test)
WARNING: Logging before flag parsing goes to stderr.
W0614 23:09:17.086473 139832585840384 deprecation.py:323] From /home/kbuilder/.local/lib/python3.5/site-packages/tensorflow/python/ops/math_grad.py:1250: add_dispatch_support.<locals>.wrapper (from tensorflow.python.ops.array_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Use tf.where in 2.0, which has the same broadcast rule as np.where

Train on 60000 samples
Epoch 1/5
60000/60000 [==============================] - 6s 102us/sample - loss: 0.2937 - accuracy: 0.9140
Epoch 2/5
60000/60000 [==============================] - 6s 95us/sample - loss: 0.1438 - accuracy: 0.9564
Epoch 3/5
60000/60000 [==============================] - 6s 96us/sample - loss: 0.1081 - accuracy: 0.9680
Epoch 4/5
60000/60000 [==============================] - 6s 98us/sample - loss: 0.0907 - accuracy: 0.9721
Epoch 5/5
60000/60000 [==============================] - 6s 94us/sample - loss: 0.0757 - accuracy: 0.9763
10000/10000 [==============================] - 1s 59us/sample - loss: 0.0715 - accuracy: 0.9776

[0.0715410652876366, 0.9776]

この画像分類器は、今回のデータセットで訓練した場合、最大98%程度の正解率となります。更に学ぶにはTensorFlow tutorialsを読んでください。