linux安装tensorflow的gpu版本bug
在linux上安装完tensorflow的gpu版本,运行
import tensorflow as tf
print(tf.test.is_gpu_available())
出现 False
以及出现下面两个警告
Could not load dynamic library 'libcudart.so.10.0'; dlerror: libcudart.so.10.0: cannot open shared object file: No such file or directory
Could not load dynamic library 'libcudnn.so.7'; dlerror: libcudnn.so.7: cannot open shared object file: No such file or directory
**问题原因:**安装的tensorflow 的gpu版本和linux上的cuda以及cudnn版本不匹配,解决办法:
一:安装和全局cuda和cudnn版本匹配的tensorflow版本;
二:root用户全局安装对应版本的cuda和cudnn;
三:在conda环境下安装cudatoolkit和cudnn。
个人推荐第三种方法。
方法一:
-
通过
nvcc -V
或者cat /usr/local/cuda/version.txt
查看全局的cuda和cudnn的版本信息,然后对应合适的tensorflow-gpu版本,可参考:https://blog.csdn.net/K1052176873/article/details/114526086、https://blog.csdn.net/LLABVIEW/article/details/120443834 -
pip install tensorflow-gpu==版本号
-
输入
python
进入python环境后,import tensorflow as tf
,print(tf.test.is_gpu_available())
;如果输出为 True,则说明安装成功注意如果
pip install tensorflow
安装的是tensorflow的cpu版本。
方法二:
有root权限的用户可以在linux上重新安装与tensorflow版本对应的cuda和cudnn版本,可以全局配置。
方法三:
没有root权限的用户无法安装新的全局cuda和cudnn版本,只能安装针对此用户的cuda和cudnn,可以使用conda安装cuda和cudnn。
-
先按照方法一的步骤安装,如果最后
print(tf.test.is_gpu_available())
输出 为 False,且出现下面情况:
-
然后在conda环境下输入
conda install cudatoolkit=10.0
; -
然后利用
conda search cudnn
查看cuda版本对应的cudnn版本,然后输入如conda install cudnn=7.6.5
; -
如果conda中没有合适的cuda或者cudnn版本,则通过windows本地下载安装包后上传到linux,然后使用
conda install --use-local file
安装