F tensorflow/stream_executor/cuda/cuda_dnn.cc:211] could not find cudnnCreate in cudnn DSO; dlerror: /home/himon/apps/anaconda3/lib/python3.5/site-packages/tensorflow/python/_pywrap_tensorflow.so: undefined symbol: cudnnCreate
报错原因:简单讲,在训练深度神经网络时,TensorTlow需要使用CUDA做GPU运算,而CUDA找不到cuDNN库了.
解决方案:
将cuDNN重新安装一下,其实就是把cuDNN里面的所有东西加入到CUDA安装目录里面,然后建立软连接就行了.下面是步骤:
首先查看.bashrc(用户的环境变量)中是不是有下面这两句话,命令:cat ~/.bashrc
:
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda-7.5/lib64"
export CUDA_HOME=/usr/local/cuda-7.5
如果有继续下面的步骤,如果没有直接加上这两句话应该就解决问题了,上面目录跟您的对应起来就可以.
cd himon/apps/cuda_cuDNN/lib64/ #进入到我的cuDNN的lib目录
sudo cp lib* /usr/local/cuda-7.5/lib64/ #将所有lib拷贝到cuda的lib64目录下
cd himon/apps/cuda_cuDNN/include/ #进入到我的cuDNN的include目录
sudo cp lib* /usr/local/cuda-7.5/include/ #将cudnn.h拷贝到cuda的include目录中
sudo chmod a+r /usr/local/cuda-7.5/include/cudnn.h /usr/local/cuda-7.5/lib64/libcudnn* #更改cuda中这些文件的权限
cd /usr/local/cuda-7.5/lib64/ #进入到cuda安装目录的lib64中
sudo rm -rf libcudnn.so libcudnn.so.5 #删除原本的软链接
sudo ln -s libcudnn.so.5.1.3 libcudnn.so.5 #建立软连接
sudo ln -s libcudnn.so.5 libcudnn.so #建立软连接
sudo ldconfig -v #手动更新系统的动态链接库
最后这一条必须要执行,因为ldconfig这个命令通常在系统启动时运行,而当用户安装了一个新的动态链接库时,就需要手工运行这个命令。