【TensorFlow2.0】This is probably because cuDNN failed to initialize.錯誤修正和cuDNN版本更新

今天在環境Ubuntu16.04+TensorFlow2.0+CUDA10.1+cuDNN7.5.0中訓練模型,本來是使用CPU計算的,但是後來數據量擴大後CPU已經不能滿足需求了,於是便安裝了TensorFlow2.0-gpu進行訓練。

錯誤

本來已經挺簡單的,因爲之前在TensorFlow-gpu1.14+CUDA10.1+cuDNN7.5.0的環境下進行過訓練,但是沒想到會出現錯誤

Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above.

看錯誤提示和查詢,發現這個錯誤有可能是我代碼的問題,也有可能是因爲我的cuDNN版本不適配。一開始我以爲是第一點,看了其他人的博客在代碼前面加上一些配置但不管用,於是只能採用第二個方法。

更新cuDNN過程

首先先使用命令 nvcc -V (注意V是大寫)確定自己的CUDA版本,然後進入cuDNN下載頁面

沒有賬號的話應註冊NVIDIA賬號,登錄後會看到以下頁面

根據自己的CUDA版本下載對應的cuDNN,有兩種安裝方式

上面橙色框線相當於下載一個裝載所有文件的壓縮包,具體需要你自己拷貝,而紅色框線則是可以直接安裝的Deb文件,對於ubuntu來說非常方便,推薦下面一種。

更新cuDNN分兩步,首先需要先卸載之前的版本通過dpkg卸載之前的libcudnn,卸載順序隨意

sudo dpkg -r libcudnn7-dev 
sudo dpkg -r libcudnn7

第二步,安裝

sudo dpkg -i libcudnn7_7.6.5.32-1+cuda10.1_amd64.deb 
sudo dpkg -i libcudnn7-dev_7.6.5.32-1+cuda10.1_amd64.deb

注意上面兩步的安裝順序不能更改,因爲libcudnn7-dev_7.6.5.32-1+cuda10.1_amd64.deb的安裝依賴於libcudnn7_7.6.5.32-1+cuda10.1_amd64.deb 

第三步,完成

接下來就可以開始愉快地訓練了~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章