在安装之前,务必确认操作系统、驱动版本、CUDA、cuDNN及tensorflow之间的对应的可用的版本型号。
这里可参考如下两张图:
上图来自nvidia官方文档
上图来自Tensorflow官方文档
大家可根据自己的操作系统和驱动型号选择合适的CUDA、cuDNN及tensorflow。
我的操作系统为:Ubuntu18.04、显卡为GTX1080Ti。
安装选用的型号分别为:驱动430、CUDA10.0.13、cuDNN7.5、tensorflow1.13.1。
下面是我的安装流程,踩了好几个坑,大家不要急着操作,踩过的坑就不要再踩了,看完再安装。
这里请参考我的另一篇博客
注意:若未安装驱动,不要着急安装,请往下看。
下载链接,选择CUDA10.0
下载上图中的两个文件,第一个为安装包,第二个为补丁(不是很必要,能提升CUDA计算性能)。
进入安装包所在文件夹,输入安装命令:
sudo sh cuda_10.0.130_410.48_linux.run
sudo sh cuda_10.0.130.1_linux.run
安装过程中会出现下图几个选择:
上图第一个问是否要装驱动,这里选择no。其余的都选yes就行。
安装完成如下所示:
配置环境变量:
vim ~/.bashrc
在文件最后加入以下内容:
export PATH=/usr/local/cuda-10.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda
然后更新一下源文件、检查CUDA是否安装成功:
source ~/.bashrc
nvcc --version
cat /usr/local/cuda/version.txt
下载链接
下载如上图所示的3个包,注意:是3个文件都要下载。
然后按这三个文件的顺序(就是上图中的3个文件的上下顺序)依次安装。
注意:必须要按依赖顺序安装,否则会出错。
安装命令:
sudo dpkg -i libcudnn7_7.5.0.56-1+cuda10.0_amd64.deb
sudo dpkg -i libcudnn7-dev_7.5.0.56-1+cuda10.0_amd64.deb
sudo dpkg -i libcudnn7-doc_7.5.0.56-1+cuda10.0_amd64.deb
注意上图中第二个安装里面的cudnn.h的路径。
把此文件复制到/usr/local/cuda/include文件夹下面,并修改权限:
sudo cp /usr/include/cudnn.h /usr/local/cuda/include
sudo chmod a+x /usr/local/cuda/include/cudnn.h
确认是否安装成功:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
到这里看似没什么问题,其实这里面坑还挺多的,继续往下面看。
pip3 install tensorflow-gpu
这里默认安装的最新的版本,也可以指定安装所需版本如:
pip3 install tensorflow-gpu==1.13.1
安装成功如上图所示。
但运行tensorflow,检查是否有问题:
输入以下代码:
python3
import tensorflow as tf
hello=tf.constant("Hello,Tensorflow!")
sess=tf.Session()
print(sess.run(hello))
输入sess=tf.Session()时,就报错了,如下图:
意思就是驱动版本较低,需要更新驱动。这里请看此篇博客的第一张图片,CUDA10.0对应的驱动应为410以上的版本。而我安装的是390。这个坑同志们要注意啊。
但奇怪的是在这之前我检查显卡型号时,推荐的是390,如下图:
ubuntu-drivers devices
推荐安装的是390型号,我就安装了这个(就是之前没注意CUDA与驱动型号的对应关系)。但上面tensorflow报错说明需要重装驱动。
先将系统中存在的nvidia驱动全部卸载掉:
sudo apt-get purge nvidia*
添加ppa源并更新软件源:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
再次检查显卡型号:
ubuntu-drivers devices
注意了,这次与之前推荐的型号不一样了,这里推荐了430,不知道是什么原因。只有再装一次了。
sudo apt-get install nvidia-driver-430
安装时,有时候网速较慢会超时报错,再更新一下软件源,多装两遍就行了,如下图:
装完之后,重启:
sudo reboot
检查是否安装成功:
nvidia-smi
python3
import tensorflow as tf
hello=tf.constant("Hello,Tensorflow!")
sess=tf.Session()
print(sess.run(hello))