如何优雅地给Windows和Ubuntu安装tensorflow-gpu
本次测试的电脑为联想拯救者15 -isk,显卡为:NVIDIA GeForce GTX960M
Windows 10+CUDA 8.0+cuDNN 6.0+Tensorflow-gpu 1.4.0
第一步:安装Anaconda
Anaconda能够方便地为Python安装各种包,因此本博客Tensorflow-gpu的安装基于该软件。
Anaconda介绍能够通过以下博客了解
https://blog.csdn.net/wyx100/article/details/79453941
安装Anaconda并不困难,进入官网https://www.anaconda.com/download/ 安装windows版本,本次安装的Anaconda版本为 4.5.4,该版本Anaconda中自带有Python 3.6,因此安装前不需要安装Python。Anaconda安装时勾选加入系统环境的选项,同时应注意,如果电脑之前安装过Python并将其加入过环境,最好将原Python从环境中移除,并将Anaconda中的Python加入环境中。如何将python添加进环境请参考
https://blog.csdn.net/wsyzxss/article/details/79269522
另外,Anaconda中自带的python.exe在Anaconda3文件夹下。
第二步:确认电脑显卡所对应的CUDA版本
不同显卡支持的CUDA版本不同,在安装CUDA前必须确认显卡所支持的CUDA版本,否则会出现未知错误。查看CUDA版本的步骤请转至
https://jingyan.baidu.com/article/6fb756ec4fabc4241858fbf7.html
第三步:安装电脑显卡所对应的CUDA版本
根据第二步中得到的支持版本信息,进入https://developer.nvidia.com/cuda-toolkit-archive 选择下载。根据NVIDIA提供的信息,本台电脑所支持的CUDA版本为8.0,因此下载CUDA 8.0并安装
第四步:为所安装的CUDA配置对应的cuDNN
下载cuDNN前需确认CUDA版本所对应的cuDNN版本,确认版本请参考
https://blog.csdn.net/lifuxian1994/article/details/81103530
CUDA 8.0对应的cuDNN的版本为5.1或6.0,本次下载的cuDNN为6.0版本。所下载的cuDNN实际上是一个压缩包,将压缩包解压能够得到4个文件(如下图所示)
将解压得到bin中文件cudnn64_6.dll复制于CUDA->v8.0->bin中(如果CUDA 9.0的话应该是CUDA->v9.0->bin吧),如下图所示
解压得到的include同理,将其内容放入CUDA->v8.0->include中相对应文件夹中;
解压得到的lib文件夹中有x64文件夹,将x64文件下中内容放入放入CUDA->v8.0->lib->x64;
将CUDA->v8.0的bin文件夹和CUDA->v8.0->lib的x64文件夹加入系统环境中。
第五步:安装Tensorflow-gpu
安装Tensorflow-gpu前需要确认CUDA版本和cuDNN版本所支持的Tensorflow-gpu版本,请参照
https://blog.csdn.net/lifuxian1994/article/details/81103530;
本机CUDA版本为8.0,cuDNN版本为6.0,因此只能安装Tensorflow-gpu 1.4.0版本;
此时我们需要用到Anaconda了,打开Anaconda Prompt;
创建Tensorflow-gpu的环境,在弹出的窗口中写入并运行
conda create --name tensorflow-gpu python=3.6
安装完成后激活Tensorflow-gpu的环境
activate tensorflow
此时界面变为
安装Tensorflow-gpu 1.4.0版本
pip install --user tensorflow-gpu==1.4.0
不出意外的话就恭喜你tensorflow-gpu安装完成
第六步:测试
接下来测试刚装好的tensorflow-gpu
打开cmd窗口,进入python编辑环境,逐行输入
import tensorflow as tf
hello = tf.constant('Hello,TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
Ubuntu 16.04+CUDA 9.0+cuDNN 7.2.1+Tensorflow-gpu 1.10.0
第一步:禁用nouveau驱动和关闭图形界面
nouveau是ubuntu自带的显卡驱动,但是该驱动会与NVIDIA的驱动产生冲突,因此在安装NVIDIA驱动前需将其禁用,方法如下:
sudo vim /etc/modprobe.d/blacklist.conf
在文件末尾加上
blacklist nouveau
options nouveau modeset=0
保存后执行
sudo update-initramfs -u
reboot
重启之后执行lsmod | grep nouveau
,倘若没有输出,说明禁用成功
关闭系统图形界面
sudo service lightdm stop
按Ctrl-Alt+F1进入命令行界面,并输入用户名和密码
本步操作参照于https://blog.csdn.net/CosmosHua/article/details/76644029
第二步:安装显卡驱动
将PPA加入系统索引
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
安装驱动(版本型号在NVIDIA官网上查询,本次安装型号为384)
sudo apt-get install nvidia-384
第三步:确认电脑显卡所对应的CUDA版本
不同显卡支持的CUDA版本不同,在安装CUDA前必须确认显卡所支持的CUDA版本,否则会出现未知错误。查看CUDA版本的步骤请转至
https://jingyan.baidu.com/article/6fb756ec4fabc4241858fbf7.html
第四步:安装电脑显卡所对应的CUDA版本
根据第二步中得到的支持版本信息,进入https://developer.nvidia.com/cuda-toolkit-archive 选择下载。根据NVIDIA提供的信息,本电脑可支持的CUDA版本有9.0,因此下载CUDA 9.0并安装。
进入官网https://developer.nvidia.com/cuda-downloads下载所对应的安装包,根据官网提示安装,如下图
安装完成后需将部分文件加入系统环境
打开终端,键入
vim ~/.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
第五步:安装对应版本的cuDNN
根据上文网址中的信息,本机应选用cuDNN 7版本
进入网站https://developer.nvidia.com/rdp/cudnn-download,选择相应的版本下载,需注册和填写简单的问卷
下载完成后按如下方式安装(虽然说是安装,其实是更新文件)
tar -zxvf 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*
第六步:安装Tensorflow-gpu
安装Tensorflow-gpu,根据官网的提示
sudo pip install tensorflow-gpu #python2的安装方式
sudo pip3 install tensorflow-gpu #python3的安装方式
安装完成后reboot一把,开始测试
第七步:测试
运用官网的测试代码
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
如果运行结果如下,说明tensorflow-gpu已成功安装
再次提醒
NVADIA显卡有所对应的CUDA的版本,安装CUDA前需确认好版本
安装tensorflow-gpu时需要将cuDNN的版本和Tensorflow的版本对应
cuDNN解压后中文件夹内的内容需要逐个放入CUDA->v8.0内部的文件夹中(如果是CUDA 9.0的话应该是v9.0吧)
总而言之,版本和环境都需要配好,缺一不可,最后祝各位一切顺利!