问题:Could not create cudnn handle: CUDNN_STATUS_NOT_INITIALIZED

2020/10/12更新
直接上解决方案:
conda list查看cudatoolkit和cudnn版本,两个的版本不能比自己安装cuda和cudnn版本高,最好是相同。这个是导致出现这个问题的根本原因。下面其他的部分可看可不看。
在这里插入图片描述

--------------------------------------------

--------------------------------------------

解决方案:

很多教程上说是cudnn的版本问题,我试过很多次不同的版本没有解决。一般只要对应上tensorflow版本即可。
教程很多,这篇博客的重点不在这。而是按照对应的版本安装完以后仍然出现了问题。这时按照以下步骤来:

配置环境变量

* export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64"
* export CUDA_HOME=/usr/local/cuda

清除缓存

sudo rm -rf ~/.nv/

弄完重启以下试试,我就是这么解决的,希望帮助到有同样问题的人

如果按照上述操作不好使可以重新配置环境变量再次试试,地址执行安装的对应版本的cuda:
输入命令:vi .bashrc配置即可

 export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda-9.0/lib64"
 export CUDA_HOME=/usr/local/cuda-9.0

配置完成清除缓存,重启

*20200318有感

新的解决方案:
如果以上方法都不能成功的解决你的问题,如果你的环境是通过conda创建的,建议你查看conda里面自带的cudnn版本,看看这个版本是不是与cuda版本不对应,查看方法:conda list
在这里插入图片描述保证这里面的cudnn版本和cuda版本对应,重点是内置的这个cudnn版本不能太低

参考链接:https://stackoverflow.com/questions/43147983/could-not-create-cudnn-handle-cudnn-status-internal-error

--------------------------------------------------------------------------------------------------------------------------------------------------华丽的分割线----------------------------------------------------------------------------------------------------------

未彻底解决的问题补充,血泪史

用上面的方法一定程度上能够解决问题,但过了一点时间彻底没用了,这时候就查各种资料,发现根本上还是从版本对应上来排查。
1.确定自己的服务器GPU型号,去查找对应的NVIDIA下载。这里要注意,tensorflow的版本制约着cuda版本,具体参考:https://blog.csdn.net/qq_27825451/article/details/89082978 对应版本。注意ubuntu16.04自带的gcc版本为5.4就不需要降级为4.8了。
环境:
ubuntu16.04
tensorflow=1.10.0
cuda=9.0
cudnn=7.3.1

按照官网上查询到的nvidia版本为384.183
我按照步骤安装了就出现上面的驱动版本不足的问题。一直试了很多对应关系,很乱。cuda换成了9.2 ,cundnn也对应升级到了7.5等一系列,但一直也没能解决问题。最终从头来了一遍,各种版本的尝试。下面是一种可行的组合,可借鉴。

解决方案:

下载稍高版本的驱动,我选的驱动:
Driver Version: 390.116 。
cuda=9.0
cudnn=7.3.1
这种组合解决了困扰我3天的问题。

备注:官网上给的390.116版本对应的cuda=9.2,我按照这种组合出现了ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory问题,在对应的9.2版本下面也没有so.9.0,所以我只能退回了9.0的cuda。最终就是这种奇怪的不符合官网预期的组合方式才能成功运行。

问题:ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory
解决:sudo ldconfig /usr/local/cuda-9.0/lib64

问题:ImportError: libcudnn.so.7: cannot open shared object file: No such file or directory
解决方案:没有建立软连接
CUDNN连接建立

 cd /usr/local/cuda/lib64

sudo rm -rf libcudnn.so libcudnn.so.7  #删除原有版本号,版本号在cudnn/lib64中查询

sudo ln -s libcudnn.so.7.0.5 libcudnn.so.7 #生成软连接,注意自己下载的版本号

sudo ln -s libcudnn.so.7 libcudnn.so 

sudo ldconfig #立即生效
GitHub 加速计划 / te / tensorflow
184.54 K
74.12 K
下载
一个面向所有人的开源机器学习框架
最近提交(Master分支:1 个月前 )
a49e66f2 PiperOrigin-RevId: 663726708 2 个月前
91dac11a This test overrides disabled_backends, dropping the default value in the process. PiperOrigin-RevId: 663711155 2 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐