今年のゴールデンウイークはどこにも行けないため、家の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です☺️