当import tensorflow时,报错ImportError: libcudnn.so.7: cannot open shared object file: No such file or directory,原因是我的cudnn版本是5.0的,应该升级至7.0
#查看我的libcudnn.so*文件
$ ll /usr/local/cuda-9.0/lib64/libcudnn*
可以看到我的cudnn是5.0,需要将cudnn升级至7.0
解决方法
1.删除旧版cudnn
1. $ sudo rm -rf /usr/local/cuda/include/cudnn.h
2. $ sudo rm -rf /usr/local/cuda/lib64/libcudnn
2.上官网 (https://developer.nvidia.com/rdp/cudnn-archive)下载7.0 版本,我的cuda版本是9.0,所以下载下的是cudnn-9.0-linux-x64-v7.tgz,注意首次登录官网需要注册Nvidia账号
3.cd 到下载目录,并解压cudnn-9.0-linux-x64-v7.tgz,解压出来是一个cuda文件夹,cd 进入这个cuda文件夹,复制cudnn.h 和lib*文件
1. $ cd Downloads (##进入下载目录)
2. $ tar -zvxf cudnn-9.0-linux-x64-v7.tgz (##解压.tgz文件)
3. $ cd cuda (进入解压出来的cuda文件夹)
4. $ sudo cp include/cudnn.h /usr/local/cuda/include/ (##复制cudnn.h)
5. $ sudo cp lib64/lib* /usr/local/cuda/lib64/ (##复制lib*)
4.创建软链接
先进入/usr/local/cuda/lib64
$ cd /usr/local/cuda/lib64
然后创建软连接
1.$ sudo chmod +r libcudnn.so.7.0.5
2.$ sudo ln -sf libcudnn.so.7.0.5 libcudnn.so.7
3.$ sudo ln -sf libcudnn.so.7 libcudnn.so
4.$ sudo ldconfig
5.查看cudnn版本
$ cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
若出现版本信息,则说明cudnn版本升级成功。
下图是我的升级流程