今年のゴールデンウイークはどこにも行けないため、家のWindows10パソコンにTensorflow2を入れてみました😃 以前から遊んでみようと思っていたのでこの機会に。
うちのパソコンには、GeForce GTX1650搭載のビデオカードが刺さっているので、GPUも使えるようにしましょう。 公式のドキュメント通りにすればすんなり導入できました。
⚠️注意点としては、このドキュメントの指示通りのバージョンをインストールする必要があります。 例えばCUDAは10.1をインストールする必要があります。最新の10.2だと動かないかもしれません。
Pythonのインストール
Python 3.5~3.7であれば動作するようです。私は以前からPython 3.6を使っていますので、そのまま使います。
依存ドライバ・ライブラリのインストール
ドキュメントの指示通りに、
- NVIDIA GPUドライバ
- CUDAツールキット - バージョン10.1をインストール
- cuDNN SDK
の3点セットを導入しましょう。
あと、cuDNN SDKは無料ではありますが、NVIDIAアカウントを作成しないとダウンロードできません。 私は持っていなかったので、アカウントを作成しました。
この3点をインストール後、Windowsの環境変数を設定します。 公式サイトには、コマンドプロンプトを使った設定が載っています。
> SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin;%PATH% > SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\extras\CUPTI\libx64;%PATH% > SET PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\include;%PATH% > SET PATH=C:\tools\cuda\bin;%PATH%
常に設定しておくには、Windowsの設定画面から、システム → バージョン情報→システム情報→システムの詳細設定で、システムのプロパティを表示します。そして、詳細設定タブから環境変数ボタンを押すと設定画面が開きます。ここに上記の設定を入力すればOKです。 以下のページに画像付きで説明があります。
Tensorflow2のインストール
準備ができたら、いよいよTensorflow2をインストールしましょう。私の好みの問題で、venv環境にインストールします。
> mkdir C:\work\tensorflow_test > cd C:\work\tensorflow_test > "C:\Program Files\Python36\python.exe" -m venv venv > .\venv\Scripts\pip install --default-timeout=100 tensorflow
pipでのインストールに--default-timeout=100をつけているのは、かなり大きなライブラリのため、混雑のためか途中でタイムアウトしてインストールできなかったためです。
以上でtensorflowがインストールできました。
動作確認
ちゃんとGPUが使えるか試しましょう。
> .\venv\Scripts\python.exe
でPythonを起動し、
>>> import tensorflow
>>> from tensorflow.python.client import device_lib
>>> device_lib.list_local_devices()
(略)
GPU:0 with 2919 MB memory) -> physical GPU (device: 0, name: GeForce GTX 1650, pci bus id: 0000:26:00.0, compute capability: 7.5)
[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 17134275088518535443
, name: "/device:GPU:0"
device_type: "GPU"
memory_limit: 3061265203
locality {
bus_id: 1
links {
}
}
incarnation: 5134643864561181396
physical_device_desc: "device: 0, name: GeForce GTX 1650, pci bus id: 0000:26:00.0, compute capability: 7.5"
]
と、GPUが認識されていればOKです☺️