みかんのゆるふわ技術ブログ

Raspberry PiやIoT関係のことを書き残していきます

Tensorflow2をGPUで動かす環境構築 (Windows10)

今年のゴールデンウイークはどこにも行けないため、家のWindows10パソコンにTensorflow2を入れてみました😃 以前から遊んでみようと思っていたのでこの機会に。

うちのパソコンには、GeForce GTX1650搭載のビデオカードが刺さっているので、GPUも使えるようにしましょう。 公式のドキュメント通りにすればすんなり導入できました。

www.tensorflow.org

注意: 2020年5月時点でのインストール例です。最新の情報は公式サイトを確認ください。

⚠️注意点としては、このドキュメントの指示通りのバージョンをインストールする必要があります。 例えばCUDAは10.1をインストールする必要があります。最新の10.2だと動かないかもしれません。

Pythonのインストール

Python 3.5~3.7であれば動作するようです。私は以前からPython 3.6を使っていますので、そのまま使います。

www.python.org

依存ドライバ・ライブラリのインストール

ドキュメントの指示通りに、

の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です。 以下のページに画像付きで説明があります。

www.atmarkit.co.jp

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です☺️