工具-tensorflow-gpu一次搞定

快捷查询

  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,不然一上来安装就感觉头大。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 调理胃病苏敬配方! 苏敬胃舒片每天两次每次4粒! 胃舒冲剂每天两次每次1包! 螺旋藻每天三次每次8粒! 苏敬消食每...
    项城苏敬养生堂阅读 3,511评论 0 0
  • 文‖飒恺 日常生活中,出错的决定有很多,比如,一起去吃饭却选了一家不好吃的餐馆;一起去游玩,却因时间没处理好导致没...
    百日跑者孙大剩阅读 3,355评论 9 13
  • 马太效应的名字就来源于圣经《新约·马太福音》中的一则寓言:从前,一个国王要出门远行,临行前,交给3个仆人每人一锭银...
    郭俊迪阅读 4,086评论 0 0
  • 1,从精读中我学到的最重要的概念 There's a difference between “being a wr...
    艾川川阅读 3,240评论 2 1