【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 

第三步,完成

接下来就可以开始愉快地训练了~

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