【最新版】TensorFlow 2.0 Alpha 動作環境構築 : Mac編

【最新版】TensorFlow  2.0 Alpha 動作環境構築 : Mac編

はじめに

MacにTensorflow 2.0 Alphaの動作環境を構築した過程を記載します。
基本的にはこちらの公式チュートリアルの流れに沿って導入しています。

本記事はQiitaに投稿した記事の詳細版となります。

構成

MacBook Pro (13-inch, 2016, Two Thunderbolt 3 ports)

TensorFlowインストール事前準備

Python諸々のインストール:公式GitHubのInstall required python packages, On Python 3-based systemsを参考に以下コードを実行しました。

アプリケーション→ユーティリティ→ターミナル.appを開き、以下を1行ずつ実行してください。

Python諸々のバージョン確認

python3 --version
pip3 --version
virtualenv --version

もし入っていないものがあったらHomebrewを使っていれましょう。

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
export PATH="/usr/local/bin:/usr/local/sbin:$PATH"
brew update
brew install python  # Python 3
sudo pip3 install -U virtualenv  # system-wide install

入れ終わったら再度バージョン確認のコードを実行し、正しく導入されているか確認して下さい。
なお、現時点(2019/5/24)での私の環境では以下の通りになりました。
Python 3.7.3
pip 19.0.3
virtualenv 16.6.0

仮想環境の作成(推奨)

Mac本体のシステムから独立した環境を構築したほうが、色々といじるのに便利なため、virtualenvというツールを使った仮想環境の導入をします。

仮想環境を導入するディレクトリを指定します。今回は./venvです。

virtualenv --system-site-packages -p python3 ./venv

ディレクトリの作成が完了したら、仮想環境の有効化をします。

source ./venv/bin/activate

有効化が正しく行われると、プロンプト内に(venv)の表示がなされます。

この独立した環境内でpipのアップグレードを実施します。

pip install --upgrade pip
pip list  # 仮想環境内でインストールされているパッケージを表示

仮想環境を終了する場合は以下を実行してください。
なおTensorFlow使用時は有効になっている必要があります。

deactivate

TensorFlow 2.0 Alpha導入

以下コマンドを実行するとインストールが開始されます。

pip install --upgrade tensorflow==2.0.0-alpha0

インストールが完了しました。

動作確認

以下を入力し対話モードに入ります。

python

Tensorflowをtfとして読み込みます。

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)

このような感じで学習と評価がなされていれば導入完了です。

>>> model.fit(x_train, y_train, epochs=5)
Epoch 1/5
60000/60000 [==============================] - 4s 59us/sample - loss: 0.3015 - accuracy: 0.9122
Epoch 2/5
60000/60000 [==============================] - 3s 54us/sample - loss: 0.1462 - accuracy: 0.9564
Epoch 3/5
60000/60000 [==============================] - 3s 54us/sample - loss: 0.1100 - accuracy: 0.9662
Epoch 4/5
60000/60000 [==============================] - 3s 57us/sample - loss: 0.0910 - accuracy: 0.9722
Epoch 5/5
60000/60000 [==============================] - 3s 53us/sample - loss: 0.0765 - accuracy: 0.9760
<tensorflow.python.keras.callbacks.History object at 0x1123d6748>
>>> 
>>> model.evaluate(x_test, y_test)
10000/10000 [==============================] - 0s 32us/sample - loss: 0.0730 - accuracy: 0.9781
[0.07304580859981943, 0.9781]

まとめ

TensorFlow 2.0 Alphaの導入、サンプル動作まで一通り実現できました。
今後は、オリジナルの学習モデルの構築を目標に勉強したいと思います。

おすすめ書籍