Tensorflow2.0のGPU環境を作る手順
tensorflow2.0でGPU環境を作る際に手間取ったので、ログを残しておく目的で記載。
この記事を読んでわかること
windows10環境でGPUを使ったtensorflow2.0.0が動かせるようになる
環境
- OS:windows10
- GPU:Geforce970
- python:3.6
- tensorflow:2.0
- CUDA:1.0.0
- cuDNN:7.4.1 for CUDA10.0
バージョン確認
tensorflowのページに記載されているバージョンでインストールする
バージョンの対応は厳密に決まっていて、10.0が10.1になっただけでも動かないため注意
tensorflow1.Xの時はバージョン対応表があったのだが、2020年1月時点でtensorflow2.Xは記載されていない。
上のページから、インストールするバージョンは以下となる。
- CUDA 10.0
- cuDNN 7.4.1 for CUDA10.0
- tensorflow-gpu==2.0.0alpha
インストール
-
Microsoft Visual C++ 2017
MicrosoftのサイトからVisual Studio 2017 communityをダウンロードしてインストールします -
CUDA 10.0
CUDA10.1はtensorflow2.0に公式対応していないため、CUDA10.0を選択して公式サイトからダウンロードする。
インストールを実行する。
システムの環境変数のPATHに以下の3つのパスを追加する。
- C:\Proguramu Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin
- C:\Proguramu Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\libnvvp
- C:\Proguramu Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\extras\CUPTI\libx64
- cuDNN 7.4.1 for CUDA10.0
公式サイトから、cuDNN 7.4.1 for CUDA10.0をダウンロードしインストールする。
ダウンロードには無料の会員登録が必要
「Download cuDNN v7.6.5 (November 5th, 2019), for CUDA 10.0」を選ぶこと
それ以外では動かないので注意。
ダウンロードした「cudnn-10.0-windows10-x64-v7.6.4.38.zip」を解凍し、中身を「C:\Proguramu Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0」にコピーすればOK。
- tensorflow2.0
pip install tensorflow-gpu==2.0.0
でインストールする。
pythonの3.6か3.5が入っていない場合、
事前にanacondaを利用して環境を作っておく
インストール確認
正常にインストールされたことの確認を行います。
- CUDAバージョン確認
nvcc -v
コマンドでバージョンを確認する。
release 10.0となっていることを確認すればOK
>nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2018 NVIDIA Corporation
Built on Sat_Aug_25_21:08:04_Central_Daylight_Time_2018
Cuda compilation tools, release 10.0, V10.0.130
- cuDNNバージョン確認
where cudnn64_7.dll
でエラーメッセージが出なければOK
>where cudnn64_7.dll
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin\cudnn64_7.dll
-
tensorflow2.0インストール確認
-
tensorflowでGPUが使えていることの確認
以下のコードを実行する。
#TensorFlowがGPUを認識しているか確認
import tensorflow
from tensorflow.python.client import device_lib
device_lib.list_local_devices()
出力結果にGPUが出ていればOK
今回の結果だとdevice_type: "GPU"
とあるのでGPUが認識できている。
[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 14349658765200920174, name: "/device:GPU:0"
device_type: "GPU"
memory_limit: 3143997849
locality {
bus_id: 1
links {
}
}
incarnation: 12577774133916212125
physical_device_desc: "device: 0, name: GeForce GTX 970, pci bus id: 0000:01:00.0, compute capability: 5.2"]
快適なtensorflow2.0.0ライフを!