按照TensorFlow官方的教程运行mnist,遇到以下问题:
E tensorflow/stream_executor/cuda/cuda_dnn.cc:390]Loaded runtime CuDNN library: 5005 (compatibility version 5000) but source wascompiled with 5110 (compatibility version 5100). If using a binary install, upgrade your CuDNNlibrary to match. If building fromsources, make sure the library loaded at runtime matches a compatible versionspecified during compile configuration.
F tensorflow/core/kernels/conv_ops.cc:605]Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms)
已放弃 (核心已转储)
原因:大概就是cudnn版本不符合,我的是5.0,官网要求的是5.1
解决方法:更新cudnn
删除之前安装的cudnn
$rm -rf /usr/local/cuda-8.0/targets/x86_64-linux/include/cudnn.h
$cd /usr/local/cuda/lib64
$sudo rm libcudnn.so
$sudo rm libcudnn.so.5
$sudo rm libcudnn.so.5.0.5
安装安装需要版本的cudnn,在终端cd到刚解压的cuda文件夹
$cd package
$sudo tar xvfcudnn-8.0-linux-x64-v5.1.tgz
$cd cuda/include
$sudo cp cudnn.h /usr/local/cuda/include/
$cd ../lib64
$sudo cp libcudnn.so /usr/local/cuda/lib64/
建立软链接(注意版本号换成你自己的)
$cd /usr/local/cuda/lib64
$sudo chmod +r libcudnn.so.5.1.10
$sudo ln -sf libcudnn.so.5.1.10 libcudnn.so.5
$sudo ln -sf libcudnn.so.5 libcudnn.so
$sudo ldconfig
报错
$/sbin/ldconfig.real: /usr/lib/nvidia-375/libEGL.so.1 不是符号连接
$/sbin/ldconfig.real: /usr/lib32/nvidia-375/libEGL.so.1 不是符号连接
原因:
系统找的是一个符号连接,而不是一个文件。这应该是个bug....
解决方法:
1.对这两个文件更名
2.重新建立符号连接
$sudo mv /usr/lib/nvidia-375/libEGL.so.1 /usr/lib/nvidia-375/libEGL.so.1.org
$sudo mv /usr/lib32/nvidia-375/libEGL.so.1 /usr/lib32/nvidia-375/libEGL.so.1.org
$sudo ln -s /usr/lib/nvidia-375/libEGL.so.375.39 /usr/lib/nvidia-375/libEGL.so.1
$sudo ln -s /usr/lib32/nvidia-375/libEGL.so.375.39 /usr/lib32/nvidia-375/libEGL.so.1
$sudo ldconfig