cuDNNの初期化に失敗
Kerasを使っていてバックエンドにTensorFlowを使っているときにConv2Dレイヤーが含まれるモデルのトレーニングをしたところ以下のようなエラーが発生したので対応しました。
結果的にはCUDA ToolkitとcuDNNをインストールして対応しました。
This is probably because cuDNN failed to initialize windows
環境情報
発生時の環境です。
OS | Windows 10 Pro |
Python | 3.7.7 |
TensorFlow | 2.1.0 |
Keras | 2.2.4-tf (TensorFlow組み込み) |
Anaconda | YES |
GPU | NVIDIA GeForce 2070 |
まさかゲーム以外のことにGeForce 2070を使うことになろうとは思いもしませんでした・・・。 ついにNVIDIA GeForce RTX 2070シリーズのROG-STRIX-RTX2070-O8G-GAMINGを購入しました。 自分はライトなゲームしかやっていないので2070シリーズは自分に ... 続きを見る
GeForce RTX 2070を購入して浮かれているポストはROG-STRIX-RTX2070-O8G-GAMING買いましたになります。
ROG-STRIX-RTX2070-O8G-GAMING買いました
CUDAのダウンロードとインストール
TensorFlowのバージョンによって使うCUDA Toolkitのバージョンを指定する必要があります。
今回はTensorFlow 2.1
を使うのでCUDA Toolkit 10.1 update2をダウンロードします。
CUDA Toolkit Download
ダウンロード後は適当にインストールします。
インストール後、ターミナルでnvcc -V
を実行して以下のような表示になればインストール完了です。
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Sun_Jul_28_19:12:52_Pacific_Daylight_Time_2019
Cuda compilation tools, release 10.1, V10.1.243
cuDNNのダウンロードとインストール
先程インストールしたCUDA Toolkitに対応したcuDNNをダウンロートしてインストールします。
今回はCuda Toolkit 10.1
を使用するのでcuDNN v7.6.5 (November 5th, 2019), for CUDA 10.1をダウンロードします。
残念ながらインストーラーはないようなので、昔ながらの方法でPATHを通すかCUDA Toolkitのプログラムフォルダにファイルをコピーする必要があるみたいです。
今回はCUDA Toolkitのプログラムフォルダにコピーします。
ダウンロードしたzipファイルを解凍します。
すると{bin, lib, include}というフォルダがあるのでCUDA Toolkitのフォルダにコピーします。
自分の環境では以下のフォルダでした。
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1
上書きされるものはなかったので安心です。
動作確認
エラーが発生した畳み込みのレイヤー(Conv2D)が含まれるモデルでトレーニングしてみてエラーが発生しなくなればOKです。
ポイント
当然モデルの構築にもよりますが、自分の環境ではCPUだと1エポック約52秒かかっていた処理がGPUだと5秒にまで短縮されました。
処理時間が約1/10ですね。