Ubuntu18.04深度学习环境配置

1. 背景

为了加速神经网络的训练,使用CPU训练速度很慢,所以使用cuda和cudnn对神经网络进行加速,在配置的过程中遇到了很多坑,大概配置了一两天,各种坑,网上也有很多教程但是实现起来各种ERROR,真心觉得累。经过差不多两天的时间终于把环境配置好。现将配置过程记录如下。

2. 硬件与软件版本

显卡:GeForce GTX 1080ti

系统:Ubuntu 18.04

cuda:9.0版本

cuDNN: cuDNN v7.1.4

TensorFlow:1.12版本

Keras:默认安装最新版

PyCharm:PyCharm2018专业版

3. 安装NVIDIA驱动

我使用的是ppa源安装的方式,因为之前也从网上从官网上下载run文件进行安装,但是但是后面出现崩溃,又得重新安装,所以这里只讲解ppa源的安装方式。

3.1 查看本机驱动版本

首先,确保机器在使用NVIDIA的显卡,而非系统的nouveau驱动。
具体步骤:在软件与更新->附加驱动中,不要选择系统自带的nouveau驱动,我们选择带有NVIDIA字样的驱动选项,然后点击应用更改,重启。
并且我们可以看到显卡驱动的版本,我这里是390版本的驱动,下面我们来更新一下驱动。
在这里插入图片描述

3.2 添加Graphic Drivers PPA源

在终端输入以下命令,添加PPA下载源,并更新源

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update

3.3 查找最新驱动

同样,在终端输入下面命令,检测你的NVIDIA图形卡和推荐的驱动程序的模型。

ubuntu-drivers devices

结果如下图:
在这里插入图片描述

从图中可以看到,这里有一个设备是GTX 1080Ti ,对应的驱动是NVIDIA -390, 396, 410和415,而推荐是安装415版本的驱动。

这里要说明一下,410和415版本的驱动是支持CUDA10.0以上版本的,而我们要安装的深度学习环境,比如Tensorflow需要CUDA9.0版本,所以根据我们的需求可以选择安装390或396版本的驱动。

3.4 安装最新驱动

通过以下命令安装驱动

sudo apt-get install nvidia-driver-396

安装后重启

sudo reboot

我本机装的是390版本的驱动,,考虑到396是BETA版本,没有更新到396版本的驱动。此处根据个人需求进行安装。

3.5 检测驱动是否安装成功

安装完后,通过如下命令检测是否安装成功。

nvidia-smi
nvidia-settings

如果安装成功会分别显示结果如下图:
在这里插入图片描述
在这里插入图片描述

4. CUDA9.0安装

4.1 下载文件

下载地址:https://developer.nvidia.com/cuda-90-download-archive
我们按照自己机器的配置选择,这里选择的是CUDA9.0版本,如下图所示
在这里插入图片描述
从上图中可以看出,对于ubuntu系统cuda9.0支持17.04和16.04版本下载安装,但实际上,有点类似于word一样(高版本word能打开低版本的word文件)18.04版本的系统,能够安装16.04版本对应的CUDA。这里我们选择16.04版本,选择安装类型为runfile(local),可发现有一个基础安装包,和四个补丁包,都下载下来,也可以就下一个基础安装包。

4.2 降低GCC版本

在安装CUDA前,由于CUDA 9.0仅支持GCC 6.0及以下版本,而Ubuntu 18.04预装GCC版本为7.3,若gcc高于6.0版本,强行编译则会出现error: #error – unsupported GNU version! gcc versions later than 6 are not supported!错误。故手动对gcc进行降级,这里安装gcc6版本,gcc-6和g++ -6,大家可以自行决定版本,只要比错误中提到的支持上限小就没问题:

sudo apt-get install gcc-6
sudo apt-get install g++-6

通过命令替换掉之前的版本:

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 50
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++ -6 50

最后通过gcc --version命令再次查看版本是否修改成功,如图所示,gcc安装成功。
在这里插入图片描述

4.3 安装CUDA

在我们安装runfile之前,我们需要安装一些依赖关系,否则安装时出现类似Missing recommended library: libGLU.so这样的警告。
在这里插入图片描述
运行下面的命令安装缺少的依赖关系。

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

安装后,找到刚才下载的run文件,运行

sudo sh cuda_9.0.176_384.81_linux.run

注意:在安装过程中会提示是否需要安装显卡驱动(Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 384.81?),由于之前已经安装过显卡驱动程序,在这里要选择n,其他的选择y或者回车键进行安装,正确安装结果如下图所示:
在这里插入图片描述

可以选择继续安装下载的四个补丁文件,也可以不安装,安装命令如下:

sudo sh cuda_9.0.176.1_linux.run.1_linux-run
sudo sh cuda_9.0.176.2_linux.run.2_linux-run
sudo sh cuda_9.0.176.3_linux.run
sudo sh cuda_9.0.176.4_linux.run

安装成功后,结果如下图
在这里插入图片描述

4.4 配置CUDA环境变量

完成以上的步骤以后一定要进行环境的配置。按步骤输入一下命令:

sudo gedit ~/.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

有时候也需要重启。最好重启一下。

4.5 测试

在安装cuda的时候也相应的安装了cuda的一些例子,可以进入例子的文件夹然后使用make命令执行。
从网上找了两个例子,例一:

# 第一步,进入例子文件
cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery
# 第二步,执行make命令
sudo make
# 第三步
./deviceQuery

如果结果有GPU的信息,显示Result=pass,则测试通过,说明安装成功。
在这里插入图片描述

5. 安装cuDNN

5.1 下载cuDNN

安装好CUDA9.0后,接下来就安装cuDNN,进入cuDNN下载页面,地址:https://developer.nvidia.com/rdp/cudnn-archive
选择Download cuDNN v7.1.4 (May 16, 2018), for CUDA 9.0 -> cuDNN v7.1.4 Library for Linux下载。下载需要注册一个NIVDIA账号。
在这里插入图片描述

5.2 安装cuDNN

此处有两种方法可以安装,分别介绍一下:

方法1:

将cuDNN v7.1.4 Library for Linux链接的文件下载好后,进入下载的文件夹,解压文件,复制cuDNN内容到CUDA相关文件夹内,具体操作命令如下:

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/include/cudnn.h /usr/local/cuda-9.0/lib64/libcudnn*

通过以上步骤就可以安装好cuDNN了。

方法2:

下载如图所示的三个文件,cuDNN v7.1.4 Runtime Library for Ubuntu16.04 (Deb)、cuDNN v7.1.4 Developer Library for Ubuntu16.04 (Deb)和cuDNN v7.1.4 Code Samples and User Guide for Ubuntu16.04 (Deb)
安装命令如下:

sudo dpkg -i libcudnn7_7.1.4.18-1_cuda9.0_amd64.deb
sudo dpkg -i libcudnn7-dev_7.1.4.18-1_cuda9.0_amd64.deb
sudo dpkg -i libcudnn7-doc_7.1.4.18-1+cuda9.0_amd64.deb

以上方法选择其中一个安装就行。

5.3 测试

以下测试方法仅限于用上述方法2的安装过程,上述方法1虽然可以安装cudnn,但是却不知道怎么用官方样例代码测试cudnn是否安装成功(感觉可以通过训练的时间对比一下分析出是否安装成功),cuDNN安装成功后会在CUDA加速的基础上再加速1.5倍左右。

安装完以后需要进行测试是否安装成功,测试的过程如下图所示:
在这里插入图片描述
运行以下命令

cp -r /usr/src/cudnn_samples_v7/ $HOME
cd $HOME/cudnn_samples_v7/mnistCUDNN
make clean && make
./mnistCUDNN

最终如果有提示信息:“Test passed! ”,则说明安装成功,如图所示:
在这里插入图片描述

6. 安装深度学习框架

6.1 安装TensorFlow

TensorFlow官方文档会指定每一个TensorFlow GPU版本所依赖的python、cuDNN、GPU显卡驱动和CUDA的版本。在安装的时候一定注意版本的对应关系,若Python、cuDNN、GPU显卡驱动和CUDA的版本有低于TensorFlow GPU 要求的版本,在安装和使用过程中会出现错误。下表是TensorFlow GPU在Linux系统下版本对应表。

TensorFlow GPU python cuDNN CUDA
1.12 2.7、3.3-3.6 >=7.2 9
1.11 2.7、3.3-3.6 >=7.2 9
1.10 2.7、3.3-3.6 7 9
1.9.0 2.7、3.3-3.6 7 9
1.8.0 2.7、3.3-3.6 7 9
1.7.0 2.7、3.3-3.6 7 9
1.6.0 2.7、3.3-3.6 7 9
1.5.0 2.7、3.3-3.6 7 9
1.4.0 2.7、3.3-3.6 6 9
1.3.0 2.7、3.3-3.6 6 9
1.2.0 2.7、3.3-3.6 5.1 9
1.1.0 2.7、3.3-3.6 5.1 9
1.0.0 2.7、3.3-3.6 5.1 9

这里我们安装的是1.12版本,终端直接用pip3 install tensorflow-gpu命令安装即可。

6.2 测试TensorFlow框架

写一个hello, world,测试一下安装的框架是否可以正常使用

import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))

运行成功后如图所示:
在这里插入图片描述
如果运行发现错误提示:ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory

错误原因及解决方法如下:
原因1:cuda9.0以及cudnn7未能安装或正确安装。
解决方案:安装cuda及对应cudnn,已安装情况下检查路径usr/local/cuda-9.0/lib64下是否有 libcublas.so.9.0文件

原因2:tensorflow版本与cuda不对应。
解决方案:检查版本对应,并适当升级。

原因3:路径未加入环境
解决方案:sudo gedit ~/.bashrc 在文档尾部加上
export LD_LIBRARY_PATH=LD_LIBRARY_PATH:/usr/local/cuda-9.0/lib64/
如果之前添加过但写法与此不同,仍然报错,请按此格式添加,改成上边的写法就不报错了。
添加完路径之后别忘了执行source ~/.bashrc

6.3 安装PyTorch

通过查阅pytorch官网,根据我们的系统环境,得知安装方法如下图所示
在这里插入图片描述
如果你是其他配置,可以进官网进行查看如何安装,这里我们执行以下命令安装PyTorch,

pip3 install torch torchvision

6.4 测试PyTorch框架

安装好后,我们写个程序测试一下是否安装成功

import torch as t
x = t.rand(5,3)
y = t.rand(5,3)
if t.cuda.is_available():
    x = x.cuda()
    y = y.cuda()
    print(x+y)

运行后如果有下图中的输出,则代表成功调用GPU加速并且pytorch安装成功,否则没有成功调用。
在这里插入图片描述

6.5 安装并配置PyCharm

此过程可以参考我之前写的一篇博文:https://blog.csdn.net/IT_xiao_bai/article/details/79171703
在这里就不赘述了。

总结

至此,深度学习的环境配置基本完成,接下来就开始进行深度学习之旅吧~

ps:欢迎大家转载,转载请注明出处https://blog.csdn.net/IT_xiao_bai/article/details/84782311

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章