cuda和cudnn版本对应的tensorflow-gpu版本错误说明与排查

首先说明一下服务器对应的cuda和cudnn版本。

cuda一般安装在 /usr/local/cuda/ 路径下,该路径下有一个version.txt文档,里面记录了cuda的版本信息

$ cat  /usr/local/cuda/version.txt 
同理,cudnn的信息在其头文件里
$ cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

所以这里是CUDA9和cudnn7。

最近跑一个项目,安装了tensorflow_gpu==1.3.0的版本,但是运行的时候总是报错误。

内容如:ImportError: libcusolver.so.8.0: cannot open shared object file: No such file or directory

最初我想到的是可能在我的环境变量当中没有做出相应的配置,因此我做出了如下的配置。

$ vim ~/.bashrc 
$ export LD_LIBRARY_PATH=”$LD_LIBRARY_PATH:/usr/local/cuda/lib64”  #添加该行
$ export CUDA_HOME=/usr/local/cuda #添加该行
$ source ~/.bashrc #添加结束后执行,使得配置生效

接着我依然尝试了下虚拟环境下tensorflow的导入,依然是上面的错误,既然找不到libcusolver.so.8.0,我们就去看看到底有没有。

所以执行命令:

$ ls /usr/local/cuda/lib64/


是真的就没有该文件,这个时候我想到两种办法,第一种是在cuda和cudnn上改动,第二种办法就是更换tensorflow的版本。

实际上,2017.12的时候,tensorflow 1.4及以下的不支持cuda9.0,且tensorflow1.0版本以上是不支持cuda8.0以下的。tensorflow-gpu1.5以后不支持使用CUDA8.0。cuda8.0对应的cuDNN必须是6.0版的。由于前面我安装的tensorflow是1.3.0,所以很明显就不能用啦。

第一种变动很容易入坑,所以优先选择第二种。

还是要进入该项目的虚拟环境中执行操作,卸载tensorflow_gpu==1.3.0并安装tensorflow_gpu==1.5.0

$ pip uninstall tensorflow-gpu==1.3.0$ pip install tensorflow-gpu==1.5.0

接着当我们在虚拟环境中使用tensorflow就正常了。



猜你喜欢

转载自blog.csdn.net/yeler082/article/details/80943040