tensorflow-gpu训练出现Could not create cudnn handle: CUDNN_STATUS_NOT_INITIALIZED

问题:Could not create cudnn handle: CUDNN_STATUS_NOT_INITIALIZED

解决方案:

很多教程上说是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

配置完成清除缓存,重启

参考链接: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 #立即生效

你可能感兴趣的:(深度学习)