您的位置:首页 > 其它

Ubuntu16.04搭建深度学习环境(显卡NVIDIA GeForce RTX 2060+cuda9.0+cudnn7.3.1+tensorflow-gpu1.10)

2019-04-19 19:39 2546 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_24285273/article/details/89386040

最近新入手RTX 2060笔记本一台,尝试装win10+ubuntu16.04双系统, 并且在ubuntu16.04系统中搭建深度学习TensorFlow环境。这里安装win10系统的过程不再详细介绍,如有需要请自行搜索,需要注意的是,硬盘需要预留大概40G的空间用来安装ubuntu16.04系统。过程并不顺利,遇到过很多的大小坑,所以将安装搭建过程整理下来,供大家学习参考交流。时间匆忙,如有错误,敬请指正。大致过程分为以下五个步骤:

一. Ubuntu16.04的安装

1 下载ubuntu-16.04-desktop-amd64.iso和UltraISO(用来将镜像文件写到u盘中)
链接:https://pan.baidu.com/s/1zj6Zr3KDrkbDuWQHXHA4_g 密码:bi4i
2 准备一个容量大于等于8G的U盘,用于制作系统启动盘
3.安装UltraISO软件,在该软件中打开ubuntu16.04镜像文件

4.在UltraISO软件中点击“启动”选项卡,再点击“写入硬盘镜像”
5.点击下图中的“写入”,即可完成系统启动盘制作

6.重启电脑,进入Bios系统(按F2,F10或者F12进入,不同品牌的电脑会有略微的差别),将U盘启动放在首位,插上U盘,启动电脑进入Ubuntu系统安装界面
7. ubuntu16.04安装欢迎界面,选择中文简体,点击“安装Ubuntu”

8.准备安装ubuntu界面,选择“为图形或无线硬件,以及MP3和其它媒体安装第三方软件”(这里会检测是否已经连网,没网的话, “安装Ubuntu时下载更新” 的选项是不能选的),点击“继续”进入下一安装界面

9.安装类型界面,这里选择“其他选项”,点击“继续”

10.下面是进行ubuntu系统分区,请参照参考资料[1]中分区相关内容或者参照参考资料[2]

11.分区结束后,再进行时区,用户名密码设置即可完成ubuntu16.04系统的安装

二. 安装NVIDIA驱动

1.进入NVIDIA英伟达驱动下载官网,选择信息如下图所示,点击“搜索”寻找合适的显卡驱动版本

2.如下图所示,NVIDIA官网推荐的是418.56版本的驱动,查看“产品支持列表”,该版本的驱动支持GeForce RTX20 系列的显卡(这里要说明的是RTX20系列显卡比较新,所以比较低版本的驱动是不支持安装的),点击“下载”即可

3.下载下来的驱动文件格式为NVIDIA-Linux-x86_64-418.56.run,在ubuntu中打开命令行(Ctrl+Alt+T),进入驱动文件所在的文件夹,然后执行以下命令代码

#-no-x-check:安装驱动时关闭X服务
#-no-nouveau-check:安装驱动时禁用nouveau
#-no-opengl-files:只安装驱动文件,不安装OpenGL文件
sudo ./NVIDIA-Linux-x86_64-418.56.run -no-x-check -no-nouveau-check -no-opengl-files

#重启
sudo reboot

#查看驱动版本信息
nvidia-smi

下图为驱动版本信息

此过程中可能会出现重启后循环登录或者命令行模式黑屏等问题,具体解决措施请参考资料[3]

安装NVIDIA驱动还有一种更为方便快捷的方式,不过该种方法只适用于安装最新版本的显卡驱动,这里写下来仅供参考:
打开系统设置>软件和更新>附加驱动,这一步要在联网下进行,查看系统推荐的驱动版本,点击“应用更改”

再打开系统设置>详细信息>概况,如图所示在图形中显示的是“GeForce RTX2060/PCle/SSE2”,说明NVIDIA驱动程序已经安装成功

三. 安装cuda9.0

CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台。 CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。 开发人员现在可以使用C语言来为CUDA架构编写程序,C语言是应用最广泛的一种高级编程语言。所编写出的程序可以在支持CUDA的处理器上以超高性能运行。
1.cuda的版本需要与NVIDIA驱动版本互相兼容对应,如果不兼容对应,那么可能会导致后续tensorflow-gpu的安装失败。下图为cuda的版本对应的NVIDIA驱动版本信息,比如要安装cuda9.0,那么在Linux系统下,显卡版本必须高于等与384.81,否则就会出现问题

2.进入cuda官网,下载cuda9.0安装包。如下图所示,选择Linux版本下64位的Ubuntu16.04的runfile文件,点击"Download"下载

3.在命令行中进入文件cuda_9.0.176_384.81_linux.run所在文件夹,然后执行以下命令

sudo sh cuda_9.0.176_384.81_linux.run

根据提示安装选择即可,如果安装了显卡驱动的,注意在询问是否安装显卡驱动的时候选择no,其它选择默认路径或者yes即可。
4.配置环境变量

sudo gedit ~/.bashrc #打开.bashrc文件

#将以下两行加入.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 /etc/profile

5.在命令行中输入

nvcc -V
,测试是否cuda9.0安装是否成功。如果输出对应的cuda版本信息,那么就说明安装成功

四.配置cudnn7.3.1

1.进入cudnn下载网站,这里需要注意的是,下载cudnn需要注册NVIDIA账户,或者选择第三方登录也可以进行文件的下载。如图所示,本次选择的是cudnn7.3.1 for cuda9.0的Linux版本进行下载

2.下载完毕后,使用命令行进入文件所在文件夹
3.使用以下命令进行解压,将下载文件的内容复制到cuda9.0的文件夹里

#解压
tar -zxvf cudnn-9.0-linux-x64-v7.3.1.20.tgz

#将下载文件的内容复制到cuda9.0的文件夹里
#每台电脑的路径可能会有所不同,这里的路径仅供参考
sudo cp cuda/include/cudnn.h /usr/local/cuda-9.0/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-9.0/lib64

重置cudnn.h文件的读写权限

sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

4.测试cuda完整性
cuda和cudnn安装配置完成后,可以到~/NVIDIA_CUDA-9.0_Samples/文件夹下测试CUDA功能完整性。一般都会在结果输出Test pass 字段。效果如下图所示:

五.安装tensorflow-gpu1.10

TensorFlow是目前比较流行的深度学习算法库。安装tensorflow-gpu版可以大大加快模型的训练速度,能够极大地缩短时间,提高工程效率。首先,需要确保ubuntu系统已经配置好python开发环境。如有需要在ubuntu系统安装Anaconda3配置python开发环境,请参照参考资料[4]。以下教程默认已经配置好python3.6开发环境。
1.安装tensorflow-gpu
由于国内网络环境问题,安装速度较慢,这里我们推荐采用清华的pypi镜像进行安装:

#这里安装的是tensorflow-gpu1.10版本
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-gpu==1.10

安装成功后,打开命令行,输入

conda list
查看tensorflow-gpu是否存在,如下图所示,如果存在,那么进行下一步的验证,否则,执行
pip uninstall tensorflow-gpu==1.10
重新安装。

2.验证tensorflow-gpu安装是否成功
打开命令行输入
python
,则会输入python版本信息,如下图所示

再输入如下代码,测试tensorflow-gpu是否安装成功

import tensorflow as tf
#初始化一个Tensorflow的常量:Hello Google Tensorflow! 字符串,并命名为test作为一个计算模块
test = tf.constant('Hello Google Tensorflow!')
#启动一个会话
sess = tf.Session()
#使用会话执行test计算模块
result = sess.run(test)
print(result)

如果安装成功,那么会在命令行中输出相应字符串,如下图所示

3.tensorflow-gpu实践测试
本人主要研究文本处理方向,最近主要在研究利用深度学习的方法进行命名实体识别(NER),参考github中ChineseNER项目,试着跑一跑中文命名实体识别BiLSTM+CRF模型。下图为模型训练过程的截图:

参考资料

[1] https://www.geek-share.com/detail/2727459948.html
[2] https://www.geek-share.com/detail/2727153263.html
[3] https://www.cnblogs.com/matthewli/p/6715553.html
[4] https://blog.csdn.net/u012243626/article/details/82469174

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐