#先に結論
TensorFlow2.1.0がWindows10のPython3.7上で使えました!
#まえがき
先日 TensorFlow 2.1.0 をGoogle Colabの環境を利用して使ってみました。
何の準備もせずに使えるのはこりゃあ便利だと感動しましたがローカルマシンで動かしたいのと以前から使っていたJupyter Notebook上でも動作させたいということで環境構築、テストをしてみました。
※Anacondaインストール済みからの構築となります。
##大まかな流れ
1. Anaconda Navigtorで新しい仮想環境生成
2. Visual Studio 2015、2017 および 2019 用 Microsoft Visual C++ 再頒布可能パッケージをインストール
3. Anaconda NavigtorでTensorFlow,matplotlibなどライブラリをインストール
4. インストール確認
5. 実際にTensorFlow 2.0 を動かして手書き文字の認識をしてみよう
私が詰まったのは2の項目でした。TensorFlow 2.1.0 を使うには追加パッケージをインストールする必要があるみたいなので
ここがWindows10におけるTensorFlow 2.1.0 のインストールで苦悶するポイントかも?
#1. Anaconda Navigtorで新しい環境生成
※仮想環境を使い分ける予定がない場合はrootを利用すればいいのでここの項目の作業はやらなくて大丈夫です。
Anaconda Navigtorを起動して左メニューからenvirmentを選択しcreateを押し、環境名を決めてPython3.7のバージョンを選択してcreateする。(少し時間がかかる)
#2. Visual Studio 2015、2017 および 2019 用 Microsoft Visual C++ 再頒布可能パッケージをインストール
https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads/
上記のurlからVisual Studio 2015、2017 および 2019 用 Microsoft Visual C++ 再頒布可能パッケージをダウンロード、インストールします。
TensorFlow 2.1.0 以降のバージョンでは、このパッケージに含まれる msvcp140_1.dll ファイルが必要なようです。
このファイル自体は Visual Studio 2019 に含まれているのでVS2019をインストール済みの方は大丈夫です。
#3. Anaconda NavigtorでTensorflow,matplotlibなどライブラリをインストール
ここまで終わればもうすぐです。
Anaconda Navigatorに戻りenvirmentで生成した環境を選択した状態で右メニュー左の項目をALLかNot Installedにしてtensorflow,matplotlibを検索してチェックボックスを付けてApplyをしてインストールします。
TensorFlow2.1.0はかなり巨大なライブラリなのでインストールに時間がかかりますが待ちましょう。
#4. インストール確認
Anaconda Navigatorの環境名右の再生ボタンにあるopen with Pythonを選択しコマンドプロンプトを開きます。
ここで以下を実行してインポートとTensorFlowのバージョン確認をしてエラーがないなら正常にインストールできました!
import tensorflow
print(tf.__version__)
##Warning! HDF5 library version mismatched error
こちらのようなエラーが出た場合はHDF5ライブラリにバージョンの不整合が出ている恐れがあります。
私は一度動作確認を行った後にこの現象が起き、TensorFlowがインポートできなくなりました。
HDF5ライブラリを再インストールしたら治りました。
pip uninstall h5py
pip install --user h5py
#5. 実際にTensorFlow 2.0 を動かして手書き文字の認識をしてみよう
ここまででTensorFlow2.1.0の環境構築は終わりました!
最後にTensorFlow公式サイトの「初心者のための TensorFlow 2.0 入門」を参考にしてニューラルネットワークの構築、訓練を行います。
Jupyter Notebookを起動して以下のコードを実行します。
初めにmnistという画像認識などを行うための訓練データセットを取り込み、ニューラルネットワークのモデルを構築します
from __future__ import absolute_import, division, print_function, unicode_literals
# TensorFlow をインストール
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
#ニューラルネットワークのモデルの設定、構築
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, batch_size=32, epochs=5)
model.evaluate(x_test, y_test, verbose=2)
# ヘルパーライブラリのインポート
import numpy as np
import matplotlib.pyplot as plt
#データを10*6に出力
for i in range(0,60):
plt.subplot(6,10,i+1)
plt.imshow(x_train[i],cmap='gray')
plt.show()
print(y_train[0:60])
データセットの中身はこんな風になっています。28*28の手書き数字の画像データと数字ラベルが入っていることが分かりますね。
#おわりに
TensorFlow2.1.0をWindows10のPython3.7上で使い、mnistの手書き数字のデータセットを元にニューラルネットワークのモデルを訓練してみました。次は自分で用意した手書き数字を予測させてみたいですね。
#出典
「pip での TensorFlow のインストール」 https://www.tensorflow.org/install/pip?hl=ja#windows