Ubuntu18.04完美搭建Tensorflow-gpu_tensorflow

Ubuntu18.04完美搭建Tensorflow-GPU1.8

0.导语

这是18年的最后一个工作日,为了这篇文章耗费了半天的时间来琢磨!

关于文章更新,后面不能保证每天一篇了,因为要放假回家了,哈哈!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

18年回顾

 

 

 

光城

 

 

 

 

 

 

 

Ubuntu18.04完美搭建Tensorflow-gpu_tensorflow_02

 

请输入

 

Ubuntu18.04完美搭建Tensorflow-gpu_bash_03

 

 

 

 

文章分享 互促共进

 

 

 

 

 

Ubuntu18.04完美搭建Tensorflow-gpu_tensorflow_04

 

 

 

 

 

 

 

 

 

 

 

坚持分享,互促共进

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Persist in sharing and promote mutual progress

 

 

 

 

 

 

 

 

 

 

 

共建共助

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

19年展望

 

 

 

光城

 

 

 

 

 

 

 

 

 

 

 

论文复现 刷爆offer

Ubuntu18.04完美搭建Tensorflow-gpu_bash_05

 

Ubuntu18.04完美搭建Tensorflow-gpu_下载地址_06

 

请输入

 

 

 

 

 

Ubuntu18.04完美搭建Tensorflow-gpu_linux_07

 

 

 

 

 

 

 

 

 

 

 

坚持刷题,直通Offer

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Stick to the brush, go straight to Offer

 

 

 

 

 

 

 

 

 

 

 

共助刷题

 

 

 

 

今天这篇文章主要讲的是,我将我自己的系统全部删除掉,然后装上一个单系统,Ubuntu18.04!

然后在Ubuntu上搭建深度学习环境!

本次搭建环境,主要是在Ubuntu18.04版本,关于Centos系统搭建深度学习环境昨天也尝试了,驱动与cuda都装成功了!但可惜电脑莫名的启动不了了,然后就换成这次的Ubuntu了,总结了一下,发现Ubuntu比Centos简单了很多!

有时需要对自己狠一点,不留后路,就像这次换系统一样,全部卸载掉,只保留一个单Linux系统,让自己在Linux上重燃激情与活力,不断磨炼自己的学习毅力与能力!

1.驱动

1.1 检查

配置深度学习GPU环境之前,首先了解一下自己的GPU是否是CUDA-capable!

lspci | grep -i nvidia

输入上述命令,会看到如下输出:

Ubuntu18.04完美搭建Tensorflow-gpu_下载地址_08

如果有,则支持,否则不支持!

1.2 禁驱动

不管是centos还是ubuntu系统,系统都会自带nouveau驱动,而这个驱动会影响后面的cuda安装,不当操作会出现黑屏现象!

现在来查看一下nouveau设备有没有,输入下面命令,如果有输出,则说明这个驱动正在加载!

lsmod|grep nouveau

我们接下来需要做的工作就是禁用这个驱动!

编辑blacklist.conf配置文件

sudo gedit /etc/modprobe.d/blacklist.conf

尾部追加:

blacklist nouveau  
options nouveau modeset=0 

更新配置文件

sudo update-initramfs -u

再次查看驱动是否被加载

lsmod | grep nouveau

上述这个操作不能彻底禁用nouveau,则移除nouveau.ko与nouveau.ko.org文件即可!

如下操作:

cd /lib/modules/4.15.0-29-generic/kernel/drivers/gpu/drm/nouveau 
sudo rm -rf nouveau.ko 
sudo rm -rf nouveau.ko.org

上述4.15.0-29不一定一致,这里直接tab补全就可以了,然后其他的同上!

随后,在做更新

sudo update-initramfs -u

再检查

lsmod | grep nouveau

如果还是有输出,则重启即可,否则没有输出,表示禁用成功!

1.3 安装nvidia驱动

上述原装驱动卸载后,开始装nvidia驱动!

  • 卸载原有nvidia驱动

 

 

sudo apt-get remove --purge nvidia-*

 

  • 安装驱动

有两种方式安装:

第一种方式,直接打开“软件和更新”,然后找到附加驱动,直接选择nvidia驱动安装即可,但是不幸的是网速比较慢,容易出错,所以不建议这种方式安装,我第一次瞎搞,就这样搞,是不行的!

Ubuntu18.04完美搭建Tensorflow-gpu_下载地址_09

第二种方式,也是我建议的方式:

首先确定自己所需要安装的驱动版本:

ubuntu-drivers devices

会看到:

driver : nvidia-340 - distro non-free
driver : nvidia-driver-390 - distro non-free recommended 
driver : xserver-xorg-video-nouveau - distro free builtin

然后来安装驱动,一般看第二行,我们看到有个英文单词recommended,表示建议安装驱动!

sudo apt-get install nvidia-driver-390

上述一键安装即可,安装完后,测试:

nvidia-smi

输出:

Ubuntu18.04完美搭建Tensorflow-gpu_bash_10

若显示如上表,则表示驱动nvidia安装成功!

2.Cuda

2.1 版本

关于版本,我选择Cuda9.0!

下载地址:

https://developer.nvidia.com/cuda-90-download-archive?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1704&target_type=runfilelocal

进入上述下载地址后,我们发现选择的Ubuntu系统支持到17.04,我当时也纳闷了,没有18.04,那怎么搞呢?

想了半天不管了,最后果然,没得影响,所以直接按照我下面勾选的下载安装即可,不用纠结!

Ubuntu18.04完美搭建Tensorflow-gpu_下载地址_11

2.2 安装

输入下面命令,进行安装:

sudo sh cuda_9.0.176_384.81_linux.run

中间会提示是否为NVIDIA安装,由于前面安装过了,所以选择no,其余默认即可,安装过程,如果修改了安装路径,请记住,后面配置需要用到!

2.3 环境变量

配置环境变量

sudo gedit  /etc/profile

尾部追加

export  PATH=/usr/local/cuda-9.0/bin:$PATH
export  LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64$LD_LIBRARY_PATH  

上述保存后,然后重启电脑!

2.4 测试Cuda

依次输入下面命令

cd  /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery

如果显示GPU相应信息,则成功!

如下图所示:

Ubuntu18.04完美搭建Tensorflow-gpu_tensorflow_12

额外的库文件安装

sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

2.5 动态链接

编辑~/.bashrc文件

vi ~/.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}}

打开环境配置文件

sudo gedit /etc/profile

尾部追加

export PATH=/usr/local/cuda/bin:$PATH

创建链接文件

sudo gedit /etc/ld.so.conf.d/cuda.conf

添加

/usr/local/cuda/lib64

执行生效

sudo ldconfig

3.CudNN

3.1 版本

cudnn-9.0-linux-x64-v7.tgz

下载地址:

https://developer.nvidia.com/cudnn

需要注册!

3.2 安装

解压并安装

tar -xzvf cudnn-9.0-linux-x64-v7.tgz sudo cp cuda/include/cudnn.h /usr/local/cuda/include sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64 sudo chmod a+r /usr/local/cuda/include/cudnn.h

更新链接

cd /usr/local/cuda/lib64/  
sudo chmod +r libcudnn.so.7.0.3  # 自己查看.so的版本  
sudo ln -sf libcudnn.so.7.0.3. libcudnn.so.7  
sudo ln -sf libcudnn.so.7 libcudnn.so  
sudo ldconfig  

4.Anaconda3

4.1 版本

版本为:

Anaconda3-5.2.0-Linux-x86_64.sh

下载地址:

https://repo.continuum.io/archive/

这个5.2.0有bug!建议改为5.3以上!

4.2 安装

bash Anaconda3-5.2.0-Linux-x86_64.sh

一直选择默认,回车就行!

中间的一个安装注意点:是否选择添加环境变量到~/.bashrc,选择是就可以了!

最后执行

source ~/.bashrc

4.3 测试

输入python

显示上述Anaconda,则表示安装成功!可以看看conda命令是否可以使用!

Ubuntu18.04完美搭建Tensorflow-gpu_tensorflow_13

5.Tensorflow-GPU

5.1 版本

版本:tensorflow-gpu-1.8

5.2 安装

直接输入:

conda install tensorflow-gpu==1.8

最后发现,直接输入pip就可以了,所以上述换成:

pip install tensorflow-gpu==1.8

两者区别是,cond安装会更新包,pip则不会!

6.测试

依次输入如下命令:

import tensorflow as tf 
a = tf.constant([1.0,2.0,3.0],name='a')
b = tf.constant([3.0,4.0,5.0],name='b')
c = a + b
sess = tf.Session()
print(sess.run(c))

测试结果如下图:

Ubuntu18.04完美搭建Tensorflow-gpu_下载地址_14

看到[4. 6. 8.],并看到自己的GPU设备,测试成功!

但是发现了一个小的bug,上面导包的时候有个警告,这个可以忽略不计,但是为了追求完美,最后的解决方案是:重装h5py即可!

Ubuntu18.04完美搭建Tensorflow-gpu_linux_15

上图这个警告是h5py与numpy不兼容,我卸载后,然后重装,警告解决!

重装解决如下图:

Ubuntu18.04完美搭建Tensorflow-gpu_bash_16

导包后,没警告了,很完美!哈哈,终于安装完毕!

7.总结

由于cuda8.0以上不支持gcc5.0以上,所以要保证自己电脑的gcc与g++版本!将这两个进行降级,有关解决问题方案,网上很多,如果安装过程碰到可以留言,也可以谷歌!

希望通过本文,大家可以对深度学习环境有个更深刻的认识,并且深入了解Ubuntu系统的操作!

Ubuntu18.04完美搭建Tensorflow-gpu_下载地址_17