Windows 10でtensorflow-gpuを使う方法をご紹介します。
目次
- 1 条件
- 2 インストール前に
- 3 TensorFlowのGPUサポートに必要な条件
- 4 NVIDIA GPU drivers
- 5 CUDA Toolkit
- 6 CUPTI
- 7 cuDNN SDK
- 8 パスの設定
- 9 tensorflow-gpuのインストール
- 10 動作確認
- 11 参考
- 11.1 TensorFlow:GPU support
- 11.2 NVIDIA:ドライバダウンロード
- 11.3 CUDA Toolkit Archive
- 11.4 NVIDIA:NVIDIA cuDNN
- 11.5 CUDA Installation Guide for Microsoft Windows
- 11.6 Installing Tensorflow with CUDA, cuDNN and GPU support on Windows 10
- 11.7 Win10: ImportError: DLL load failed: The specified module could not be found
条件
- Windows 10 64bit
- GeForce GTX 1060
- CUDA Toolkit 10.0 (Sept 2018)
- Download cuDNN v7.6.0 (May 20, 2019), for CUDA 10.0
- Tensorflow-gpu 1.13.1
- Python 3.7.0
インストール前に
TensorflowをGPUで使用する場合、様々なライブラリ等をインストールする必要があります。
しかも、各ソフトのバージョン組合せが重要で、少しでも組合せに誤りがあると以下のようなエラーが出て動作しません。
ImportError: DLL load failed: 指定されたモジュールが見つかりません。
エラー内容を見ても対応がわからないため、とても多くの人が当該エラーではまっているようです。
今回は、現時点(2019/6/17)で動作確認できた、それなりにバージョンが新しい組合せをご紹介します。
- CUDA Toolkit 10.0 (Sept 2018)
- Download cuDNN v7.6.0 (May 20, 2019), for CUDA 10.0
- Tensorflow-gpu 1.13.1
- Python 3.7.0(おそらく3.7のより新しいバージョンでもOK)
TensorFlowのGPUサポートに必要な条件
以下のサイトより、いくつかのソフトが必要となります。
https://www.tensorflow.org/install/gpu#software_requirements
NVIDIA GPU drivers
通常、当該ドライバはインストール済みのはずなので、この手順は不要です。
必要に応じてインストールしてください。
ダウンロード
以下のサイトから対応するドライバをダウンロードします。
https://www.nvidia.co.jp/Download/index.aspx?lang=jp
インストール
インストーラに沿ってインストールを行います。
詳細は割愛します。
CUDA Toolkit
ダウンロード
以下のサイトから対応するインストーラ(10.0)をダウンロードします。
https://developer.nvidia.com/cuda-downloads
ちなみに、10.1をインストールした場合、tensorflowの動作確認で以下のエラーになりました。
ImportError: DLL load failed: 指定されたモジュールが見つかりません。
インストール
インストーラに沿ってインストールを行います。
詳細は割愛します。
CUPTI
CUDA Toolkitのインストーラによってインストールされます。
特に何もする必要はありません。
cuDNN SDK
ダウンロード
以下のサイトからインストーラをダウンロードします。
https://developer.nvidia.com/cudnn
Dwonload cuDNNを選択します。
Membership Requiredとなるので登録を行います。
登録後、ダウンロード画面が表示されます。
先ほどインストールしたCUDAのバージョンと対応するものを選択します。
(「Download cuDNN v7.6.0 (May 20, 2019), for CUDA 10.0」の「cuDNN Library for Windows 10」を選択します。)
解凍&配置
ダウンロードした「cudnn-10.0-windows10-x64-v7.6.0.64.zip」を解凍して任意の場所に配置します。
今回は、以下のパスに配置しました。
C:\tools\cuda
パスの設定
パスの設定を行います。
以下の画面を開きます。
コントロール パネル > システムとセキュリティ > システム
システムの詳細設定を選択し、システムのプロパティ画面を開きます。
環境変数ボタンを押して環境変数画面を開き、ユーザーの環境変数で「Path」を選択した状態で編集ボタンを押します。
新規ボタンを押して、以下4つのパスを追加します。
(環境に応じて変更してください。)
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\extras\CUPTI\lib64 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\include C:\tools\cuda\bin
OKボタンを押して各画面を閉じます。
tensorflow-gpuのインストール
コマンドプロンプトにて、以下のコマンドでインストールを行います。
> pip install tensorflow-gpu==1.13.1
動作確認
tensorflow-gpu
コマンドプロンプトを起動し、pythonのコンソールで以下を実行します。
import tensorflow as tf print(tf.__version__)
「1.13.1」とtensorflow-gpuのバージョンが表示されれば成功です。
GPUの認識
pythonのコンソールで以下を実行します。
from tensorflow.python.client import device_lib device_lib.list_local_devices()
以下のように、「GPU」の項目が出力されていれば成功です。
>>> from tensorflow.python.client import device_lib >>> device_lib.list_local_devices() 2019-06-17 15:48:42.948205: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 2019-06-17 15:48:43.988288: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1433] Found device 0 with properties: name: GeForce GTX 1060 with Max-Q Design major: 6 minor: 1 memoryClockRate(GHz): 1.3415 pciBusID: 0000:01:00.0 totalMemory: 6.00GiB freeMemory: 4.97GiB 2019-06-17 15:48:43.997414: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1512] Adding visible gpu devices: 0 2019-06-17 15:48:46.267386: I tensorflow/core/common_runtime/gpu/gpu_device.cc:984] Device interconnect StreamExecutor with strength 1 edge matrix: 2019-06-17 15:48:46.272622: I tensorflow/core/common_runtime/gpu/gpu_device.cc:990] 0 2019-06-17 15:48:46.275699: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1003] 0: N 2019-06-17 15:48:46.281815: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1115] Created TensorFlow device (/device:GPU:0 with 4716 MB memory) -> physical GPU (device: 0, name: GeForce GTX 1060 with Max-Q Design, pci bus id: 0000:01:00.0, compute capability: 6.1) [name: "/device:CPU:0" device_type: "CPU" memory_limit: 268435456 locality { } incarnation: 3018810256423696574 , name: "/device:GPU:0" device_type: "GPU" memory_limit: 4945621811 locality { bus_id: 1 links { } } incarnation: 16169790953990630209 physical_device_desc: "device: 0, name: GeForce GTX 1060 with Max-Q Design, pci bus id: 0000:01:00.0, compute capability: 6.1" ] >>>
参考
TensorFlow:GPU support
https://www.tensorflow.org/install/gpu
NVIDIA:ドライバダウンロード
https://www.nvidia.co.jp/Download/index.aspx?lang=jp
CUDA Toolkit Archive
https://developer.nvidia.com/cuda-toolkit-archive
NVIDIA:NVIDIA cuDNN
https://developer.nvidia.com/cudnn
CUDA Installation Guide for Microsoft Windows
https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/