Ubuntu17.10运行TensorFlow遇libcublas.so.9.0找不到问题求助
解决Ubuntu 17.10中TensorFlow找不到
libcublas.so.9.0的问题 你遇到的核心问题大概率是TensorFlow版本与CUDA版本不匹配,或是CUDA的环境变量没有正确生效。下面一步步帮你排查解决:
第一步:确认TensorFlow与CUDA的版本对应关系
TensorFlow对CUDA版本有严格的依赖要求,先搞清楚你当前安装的TensorFlow需要哪个CUDA版本:
- 执行
pip show tensorflow查看你的TensorFlow版本:- TensorFlow 1.5及以上版本需要CUDA 9.0 + cuDNN 7.0
- TensorFlow 1.4及以下版本需要CUDA 8.0 + cuDNN 6.0
如果你的TensorFlow版本需要CUDA9.0,但之前装的是CUDA8.0,就会出现找不到libcublas.so.9.0的错误;反之亦然。
方案1:适配TensorFlow版本安装CUDA9.0
如果你的TensorFlow需要CUDA9.0,按以下步骤重新安装:
- 卸载旧的CUDA版本:
sudo apt-get purge nvidia-cuda* sudo rm -rf /usr/local/cuda* - 安装CUDA9.0(适配Ubuntu17.10):
下载对应Ubuntu17.10的CUDA9.0 deb包(NVIDIA官网可找到旧版本资源),然后执行:sudo dpkg -i cuda-repo-ubuntu1710-9-0-local_9.0.176-1_amd64.deb sudo apt-key add /var/cuda-repo-9-0-local/7fa2af80.pub sudo apt-get update sudo apt-get install cuda-9-0 - 配置环境变量:
编辑~/.bashrc文件,添加以下内容:
执行export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}source ~/.bashrc让配置生效,然后用nvcc -V验证CUDA版本是否为9.0。 - 安装对应版本的cuDNN:
下载cuDNN7.0(对应CUDA9.0)的tar包,解压后复制文件到CUDA目录:tar -xzvf cudnn-9.0-linux-x64-v7.tgz sudo cp cuda/include/cudnn*.h /usr/local/cuda-9.0/include sudo cp cuda/lib64/libcudnn* /usr/local/cuda-9.0/lib64 sudo chmod a+r /usr/local/cuda-9.0/include/cudnn*.h /usr/local/cuda-9.0/lib64/libcudnn*
方案2:适配CUDA8.0安装对应TensorFlow版本
如果你想继续使用CUDA8.0,需要安装兼容的TensorFlow版本(比如1.4.0):
pip install tensorflow-gpu==1.4.0
同时确保CUDA8.0的环境变量正确配置,并且安装了cuDNN6.0。
最后验证
执行以下命令检查库是否能被系统找到:
ldconfig -p | grep libcublas.so.9.0
如果能输出对应的库路径,再尝试import tensorflow as tf,应该就能正常运行了。
另外注意:Ubuntu17.10的内核需要搭配CUDA9.0对应的NVIDIA驱动(版本≥384.81),如果驱动不兼容也会导致问题,可以用nvidia-smi检查驱动版本。
内容的提问来源于stack exchange,提问作者Nishant Sikri
相关产品推荐
相关产品推荐

