工具-tensorflow-gpu一次搞定

2018-09-30  本文已影响0人  lip136

快捷查询

  1. 查询tensorflow是GPU还是CPU的版本
import tensorflow as tf
tf.test.is_gpu_available()
  1. 查看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'
  1. 查看CUDA和cudnn型号
cat /usr/local/cuda/version.txt
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
  1. 查看电脑的GPU
nvidia-smi
  1. 在程序中指定使用哪一个GPU
import os
os.environ["CUDA_VISIBLE_DEVICES"]='0','1'
# 这里指定使用0号和1号GPU

问题

  1. tensorflow-gpu==1.7.1不支持CUDA=9.1

如此我只能放弃cuda9.1,重新安装9.0

  1. 安装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的源手动去掉

  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 
  1. 出现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

安装

  1. 安装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
  1. 安装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
  1. 安装tensorflow-gpu==1.7.1
sudo pip install tensorflow-gpu==1.7.1

题外话

其实不用一上来就搞gpu,而且就算你搞了gpu,有些时候你还是需要服务器才可以,我的电脑1080,8g的gpu,基本上就很少在自己电脑跑程序,因为吃不消。所以你完全可以装cpu先熟悉,了解基本结构再搞gpu,不然一上来安装就感觉头大。

上一篇下一篇

猜你喜欢

热点阅读