快捷查询
- 查询tensorflow是GPU还是CPU的版本
import tensorflow as tf
tf.test.is_gpu_available()
- 查看tensorflow-gpu所需要支持的cuda版本
查看当前tensorflow-gpu版本所需的CUDA和cudnn型号\Lib\site-packages\tensorflow\python\platform\build_info.py这个文件,可以看到使用的CUDA 9.0和cuDNN 7:
msvcp_dll_name = 'msvcp140.dll'
cudart_dll_name = 'cudart64_90.dll'
cuda_version_number = '9.0'
nvcuda_dll_name = 'nvcuda.dll'
cudnn_dll_name = 'cudnn64_7.dll'
cudnn_version_number = '7'
- 查看CUDA和cudnn型号
cat /usr/local/cuda/version.txt
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
- 查看电脑的GPU
nvidia-smi
- 在程序中指定使用哪一个GPU
import os
os.environ["CUDA_VISIBLE_DEVICES"]='0','1'
# 这里指定使用0号和1号GPU
问题
- tensorflow-gpu==1.7.1不支持CUDA=9.1
如此我只能放弃cuda9.1,重新安装9.0
- 安装9.0的时候默认跑到9.1源去了
E: 下载 file:/var/cuda-repo-9-1-local/./cuda-drivers_387.26-1_amd64.deb 无法找到文件 - /var/cuda-repo-9-1-local/./cuda-drivers_387.26-1_amd64.deb (2: 没有那个文件或目录) 失败
因为我之前安装的是9.1,所以才会这样。
我的解决办法是去 软件和更新 里面把9.1的源手动去掉
- ImportError: libcudnn.so.7
错误:cannot open shared object file: No such file or directory
一般是环境变量没有配置好,进入~/.bashrc
export CUDA_HOME=/usr/local/cuda-9.0${PATH:+:${PATH}}
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export PATH=${CUDA_HOME}/bin:${PATH}
要不就是cudnn没有连接上
cd /usr/local/cuda/lib64
sudo rm -rf libcudnn.so libcudnn.so.7
sudo ln -s libcudnn.so.7.0.5 libcudnn.so.7
sudo ln -s li
sudo ldconfig
- 出现tensorflow只使用了cpu而没有gpu
nvidia-smi
我的是出现
Failed to initialize NVML: Driver/library version mismatch
这个时候重启一下就ok了
卸载
sudo apt autoremove cuda
cd /usr/local/
sudo rm -rf cuda-9.1
sudo rm -r cuda-repo-9-1-local
安装
- 安装CUDA
下载9.0版本,我选择的是linux64位deb包。
sudo dpkg -i cuda-repo-ubuntu1604-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
打开环境文件,加入环境变量,使环境生效
sudo gedit ~/.bashrc
export CUDA_HOME=/usr/local/cuda-9.0
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64
export PATH=${CUDA_HOME}/bin:${PATH}
sudo ldconfig
cat /usr/local/cuda/version.txt
- 安装cudnn
下载7.0.5版本,这个需要注册登录的,是一个压缩包cudnn-9.0-linux-x64-v7.tgz
sudo tar -zxvf cudnn-9.0-linux-x64-v7.tgz
拷贝文件
sudo cp cuda/lib64/* /usr/local/cuda-9.0/lib64/
sudo cp cuda/include/* /usr/local/cuda-9.0/include/
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
- 安装tensorflow-gpu==1.7.1
sudo pip install tensorflow-gpu==1.7.1
题外话
其实不用一上来就搞gpu,而且就算你搞了gpu,有些时候你还是需要服务器才可以,我的电脑1080,8g的gpu,基本上就很少在自己电脑跑程序,因为吃不消。所以你完全可以装cpu先熟悉,了解基本结构再搞gpu,不然一上来安装就感觉头大。