[Note]从0开始搭建深度学习环境TensorFlow+PyTorch

Posted 西蒙的庄园

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Note]从0开始搭建深度学习环境TensorFlow+PyTorch相关的知识,希望对你有一定的参考价值。

前言

最近lab进了一个新机箱,专门用来跑DL,既然是一台新机器,就让我们从装系统开始一起来配置DL环境吧,这也是我第一次真正意义上从头到尾配环境,一路上也是遇到了一些问题,写下本文也是为了记录一下配置环境的整体流程为以后所用,也希望初入DL大门的各位能尽可能少的踩坑,毕竟只有配环境的人才知道着配环境的过程有多闹心。

希望大家都能顺顺利利配环境,开开心心跑模型(●'◡'●)

p.s.本来想从装机开始,但是拿来的时候已经装配好了,那么我们就假定你已经有一台装好的裸机了,

1 硬件环境

  • CPU: i7-8700 3.20GHz

  • GPU: 七彩虹 iGame GeForce RTX2080Ti

  • 内存: 金士顿 16G

  • 主板: 华硕 PRIME Z370-P

  • 硬盘: SSD 120G + HDD 2T

2 安装Ubuntu 18.04.1 LTS

2.1 下载官方镜像

2.2 制作系统USB启动盘

首先下载工具Refus

官方下载链接:https://rufus.ie/zh_CN.html

笔者写下本文时,官方提供的是Refus3.3

选择安装系统镜像,分区选择GPT,目标系统UEFI,如 图1 所示,之后点击开始,等待进度条走完,然后点击[关闭],弹出U盘就ok了。

图1

2.3 安装系统

开机连续按F2,进入Bios,将引导模式设置为UEFI引导,如 图2 所示(不同主板设置不同,请自行查找相关资料进行修改)

[Note]从0开始搭建深度学习环境TensorFlow+PyTorch

图2


补充资料:

【BIOS引导】:传统的电脑通常都是使用BIOS引导,开机BIOS初始化,然后BIOS自检,再引导操作系统→进入系统,显示桌面。

[Note]从0开始搭建深度学习环境TensorFlow+PyTorch

USB启动: 在BIOS引导的情况下,通常使用U盘维护、安装操作性系统,只要找到U盘使用上下键,选中此项,按回车键(Enter)予以确认,再按F10键,重启电脑就ok了。

[Note]从0开始搭建深度学习环境TensorFlow+PyTorch

【UEFI引导】:UEFI引导的流程是开机初始化UEFI,然后,直接引导操作系统,进入系统。和传统的BIOS引导相比,UEFI引导少了一道BIOS自检的过程,所以开机就会更快一些,这也成为了电脑的新宠。

[Note]从0开始搭建深度学习环境TensorFlow+PyTorch


开机之后正常选择,到了installation type 这里记得选something,自定义配置比较方便一些

p.s.这里由于之前学长把系统直接挂在了HDD上,SSD没挂上,所以在 图3 中你会看到前3行是这样显示的,不过没有关系,直接进入Something else [Note]从0开始搭建深度学习环境TensorFlow+PyTorch

图3


进入之后可以看,图4,到有两块硬盘一个sda,一个sdb,分别对应SSD和HDD,如果没有看到对应盘下面出现free space,请先选择对应的硬盘然后点击右侧的 new partation table,之后在对应的硬盘下就会出现free space之后,我们对分出来的free space进行分配 [Note]从0开始搭建深度学习环境TensorFlow+PyTorch

图4

首先先分一下HDD,HDD主要用来存放数据,一般DL训练过程中的数据集我们选择放在这个HDD里面

  • 分一个内存大小的swap

  • 剩下选择 Ext4 journaling file system 并挂在到/home


在 图5 中我展示了我的配置结果,读者根据自己的实际情况自行分配即可

[Note]从0开始搭建深度学习环境TensorFlow+PyTorch

图5


之后分SSD

  • 分一个500M的 EFI System Partition 分区

  • 剩下的全部分给 / 即可

分配结果如 图6 所示

[Note]从0开始搭建深度学习环境TensorFlow+PyTorch

图6


之后只要常规的下一步下一步,然后重启就ok了。

3 安装Linux之后的几件事情

3.1 给Linux换国内源

Ubuntu系统自带的源都是国外的网址,国内用户在使用的时候网速比较慢。这里讲解一下如何将国外源更换为国内源,让你的网速起飞

1、首先备份原来的源,以防以后可以用的

 
   
   
 
  1. sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

2、更换源

 
   
   
 
  1. sudo nano /etc/apt/sources.list

将原有的源注释掉,之后将下面的阿里源复制到 sources.list

 
   
   
 
  1. deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse  

  2. deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse  

  3. deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse  

  4. deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse  

  5. deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse  

  6. deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse  

  7. deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse  

  8. deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse  

  9. deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse  

  10. deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse

之后执行 sudo apt update和 sudo apt upgrade

3.2 安装显卡驱动

刚安装好的Ubuntu18是没有2080ti的驱动的,那个输出的屏幕分辨率简直没法直视,首先就让我们安装显卡驱动。

系统自带的显卡驱动不是NVIDIA的,先删除这个驱动

 
   
   
 
  1. sudo apt-get purgenvidia*

添加Graphic Drivers PPA

 
   
   
 
  1. sudo add-apt-repository ppa:graphics-drivers/ppa

  2. sudo apt-get updat

查找驱动:

 
   
   
 
  1. ubuntu-drivers devices

[Note]从0开始搭建深度学习环境TensorFlow+PyTorch

选择上图中推荐的415驱动:

 
   
   
 
  1. sudo apt-get install nvidia-driver-415

之后重启:

 
   
   
 
  1. reboot

重启后点开系统Setting里面的Detail,就可以看到系统识别到了信仰的2080Ti了

[Note]从0开始搭建深度学习环境TensorFlow+PyTorch

还可以在Terminal中输入 nvidia-smi 查看显卡信息

3.3 添加搜狗输入法

1.Ubuntu电脑自带Ibus输入法+拼音/五笔,但是用了一段时间之后发现经常会出现输入不了中文的现象,解决办法是去清空ibus的配置文件,但是这样会把自己每天使用电脑变得更加麻烦

2.同时网上对于Ubuntu中某些特定的软件,例如sublime等不能输入中文的解决办法都是提出基于fcitx的解决方案

3.sougou输入法基于输入法市场是比较成熟的,模拟输入、检测目标词汇都是比较好的,体验不错


首先卸载电脑中存在的ibus输入法:

这个时候在系统中还可以看到ibus的设置和输入法,不过没有关系,如果介意的话可以重启电脑即可消除。

 
   
   
 
  1. sudo apt remove 'ibus*'

之后在自带的应用商店搜索fcitx,安装查找到的三个fctix应用(三个小企鹅图标)

4 安装CUDA9.0

TF的安装主要是需要CUDA,cuDNN这些版本进行匹配,如果匹配不成功,会相当麻烦。

附:官网各版本的匹配表https://tensorflow.google.cn/install/source

[Note]从0开始搭建深度学习环境TensorFlow+PyTorch

这里我们选择红框里的配置

4.1 安装依赖库

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

4.2 修改gcc与g++版本

CUDA9.0要求gcc版本是5.x或者6.x,其他版本不可以,要自己进行配置,下面改变gcc与g++版本。

 
   
   
 
  1. #安装5.x的gcc与g++

  2. sudo apt-get install gcc-5

  3. sudo apt-get install g++-5

  4. #替换旧版本的gcc与g++

  5. sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 50

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

4.3 安装CUDA9.0

按下图配置进行选择

[Note]从0开始搭建深度学习环境TensorFlow+PyTorch

之后下载下方的Base Installerh和四个Patch文件

[Note]从0开始搭建深度学习环境TensorFlow+PyTorch

进入Download目录,依次执行以下命令:

 
   
   
 
  1. # 1 这一步中如果询问是否安装NVIDIA驱动,一定要选择no!!!!!

  2. sudo sh cuda_9.0.176_384.81_linux.run

期间会让你看一段很长的协议,一开始还从头看到了尾,后来发现只要按一下 q退出就好了(如下图所示,这一堆条款,按enter得按半天(;´д`)ゞ)

[Note]从0开始搭建深度学习环境TensorFlow+PyTorch

安装完之后会出现下图中的提示,这一步就算ok了(虽然下面Summary出现了Warning,不用担心)

[Note]从0开始搭建深度学习环境TensorFlow+PyTorch


 
   
   
 
  1. # 2 安装剩下的4个Patch

  2. sudo sh cuda_9.0.176.1_linux.run

  3. sudo sh cuda_9.0.176.2_linux.run

  4. sudo sh cuda_9.0.176.3_linux.run

  5. sudo sh cuda_9.0.176.4_linux.run


之后在~/.bashrc 中设置环境变量

 
   
   
 
  1. sudo nano ~/.bashrc

在该文件最后面添加

 
   
   
 
  1. export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}

  2. export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

  3. export CUDA_HOME=/usr/local/cuda

然后ctrl+x退出nano编辑器。 之后 source/etc/bash.bashrc使环境变量生效。最好再 reboot一下

如果你上面安装路径都是默认的话,那么可以试着执行下面的指令,测试一下你的CUDA装没装好。

 
   
   
 
  1. cd ~/NVIDIA_CUDA-9.0_Samples/1_Utilities/deviceQuery

  2. make -j4  

  3. sudo ./deviceQuery

出现下图中的PASS就是成功了!( •̀ ω •́ )✧

离成功又进了一步 [Note]从0开始搭建深度学习环境TensorFlow+PyTorch

5 安装cuDNN7.4

这个需要提前注册一个账号,登陆之后下载

选择 DownloadcuDNN v7.4.1(Nov8,2018),forCUDA9.0--cuDNNLibraryforLinux 下载下来是一个 cudnn-9.0-linux-x64-v7.4.1.5.tgz压缩包这个tar文件默认应该是你的Download目录下。

首先解压:

 
   
   
 
  1. tar -zxvf cudnn-9.0-linux-x64-v7.4.1.5.tgz

会得到一个叫cuda的文件夹,依次执行下面的3条指令

 
   
   
 
  1. sudo cp cuda/include/cudnn.h /usr/local/cuda/include


  2. sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64


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

没有报错就OK了。

6 配置Anaconda 5.3.1

6.1 下载与安装

既然是用Python,肯定离不开Anaconda全家桶,那么就先安装一个,笔者写下本文时官网Anaconda版本是5.3.1

该版本Anaconda对应的是Python3.7的版本,按下图进行选择

[Note]从0开始搭建深度学习环境TensorFlow+PyTorch

同样的到Download目录,执行以下指令,安装anaconda,之后安装过程和PC类似,只要一路next就ok(记得有一条是加环境变量,记得点选)

 
   
   
 
  1. bash Anaconda3-5.3.0-Linux-x86_64.sh

6.2 为conda更新为国内源

跟换linux的源一个道理,国外的源实在是太慢了,换个源,让你配置系统的效率再次起飞

对于conda我们使用清华大学的TUNA提供的Anaconda 仓库的镜像

执行下面的3条指令就OK了

 
   
   
 
  1. conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

  2. conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

  3. conda config --set show_channel_urls yes

6.3 为pip更换阿里源

首先执行

 
   
   
 
  1. mkdir ~/.pip

之后执行

 
   
   
 
  1. cat > ~/.pip/pip.conf << EOF  

然后依次输入下面4行

 
   
   
 
  1. [global]

  2. trusted-host=mirrors.aliyun.com

  3. index-url=https://mirrors.aliyun.com/pypi/simple/

  4. EOF

效果图如下图所示

[Note]从0开始搭建深度学习环境TensorFlow+PyTorch

6.4 在Anaconda中创建Python3.6环境

Anaconda的python版本是3.7的,但是现在TF不支持,于是我们创建一个Python的虚拟环境

这里补充以下conda的一些基本用法,这里发一个CONDA CHEET SHEET,名字还是挺好玩的,大家可以熟练掌握基本的语句,具体内容放在下面2张图里

官方链接:https://conda.io/docs/_downloads/conda-cheatsheet.pdf

首先先创建一个叫tf的虚拟环境

 
   
   
 
  1. conda create --name tf python==3.6

然后利用 conda activate tf进入这个虚拟环境,我们将在虚拟环境内安装tensorflow

然后安装GPU版本tensorflow,Anaconda将为我们自动下载相关依赖组件

 
   
   
 
  1. pip install --ignore-installed --upgrade tensorflow-gpu

安装完成后进行测试,看看你的tensorflow装没装好,在虚拟环境内输入 python然后输入下面内容

 
   
   
 
  1. import tensorflow as tf

  2. hello = tf.constant('first tensorflow')

  3. sess = tf.Session()

  4. print sess.run(hello)

如果正常输出就是成功了!

7 安装Keras

在虚拟环境中执行 pip install keras

8 PyTorch

在虚拟环境中执行 conda install pytorch torchvision-c pytorch

然后进入python测试

 
   
   
 
  1. import torch

  2. print(torch.cuda.is_available())

  3. #输出True则为成功

9 总结

至此你应该已经完整的配置好DL的环境了,这只是DL的第一步,好好学习DL理论和tf与torch才是王道,在此特别感谢知乎 黄海广 博士的文章,他的文章为本文的实践提供了坚实的基础,真的是填了不少的坑,笔者也是第一次从头到尾配环境,感谢。

p.s.另外如果你喜欢本文且对你产生了帮助,欢迎点赞、分享、收藏,您的鼓励是我继续前进的动力,大家一起加油吧!

参考链接

[1] cuDNN官方Document: https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html#install-windows

[2] https://zhuanlan.zhihu.com/p/50302396

Lotus Panda 12/2/2018 3:11:37 PM


以上是关于[Note]从0开始搭建深度学习环境TensorFlow+PyTorch的主要内容,如果未能解决你的问题,请参考以下文章

从零开始搭建深度学习环境

从零开始搭建深度学习环境

手把手教你搭建深度学习环境

机器学习——从0开始构建自己的深度学习网络

深度学习目标检测(YoloV5)项目——从0开始到项目落地部署

深度学习环境搭建:Tensorflow1.4.0+Ubuntu16.04+Python3.5+Cuda8.0+Cudnn6.0