实验室服务器上的tensorflow Docker镜像里只有python2的完整环境,而遇到程序需要在python3里跑,于是通过pip3安装了tensorflow和tensorflow-gpu。安装完成后在GPU上跑tensorflow时会报错ImportError: libcudnn.5: cannot open shared object file: No such file or directory。
经检查发现缩安装的tensorflow需要CUDA8.0以及cuDNN6.0,而服务器上的cuDNN为5.0.
解决方法如下:
- 前往NVIDIA网站上的下载页面下载cuDNN v6.0 for CUDA 8.0。注意下载需要注册NVIDIA Developer账号。
 - 解压所下载的压缩文件。
tar -zxvf cudnn-8.0-linux-x64-v6.0.tgz - 将
../cuda/lib64/文件夹下的libcudnn.so.6.0.21和libcudnn_static.a这两个文件复制到/usr/local/cuda/lib64/文件夹下。 建立link
1
2
3$ cd /usr/local/cuda/lib64/
$ sudo ln -s libcudnn.so.6.0.21 libcudnn.so.6
$ sudo ln -s libcudnn.so.6 libcudnn.so如果遇到报错link已存在,将其unlink,重新执行即可。
- 复制include文件夹下的cudnn.h到
/usr/local/cuda/include$ sudo cp cudnn.h /usr/local/cuda/include/ - 在
.bashrc文件中添加cuda路径export LD_LIBRARY_PATH=/usr/local/cuda/lib64/ - 重新加载
.bashrc文件source ~/.bashrc