实验室服务器上的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