深度学习GPU环境搭建-上篇

为了加速神经网络的训练,使用CPU训练速度很慢,所以使用CUDA和cuDNN对神经网络进行加速,在配置的过程中你会遇到很多坑,各种坑,网上也有很多教程但是实现起来各种ERROR,真心觉得累,经过多次实验做如下超全总结!!!

本节详细说明一下深度学习环境配置,深度学习GPU环境搭建全家桶

Ubuntu16.04+GTX1080Ti+CUDA9.0+Anaconda3+Python3.6+Tensorflow1.8.0+Pytorch1.1.0

注意:RTX 2080 Ti显卡的环境安装过程略有不同,RTX 2080Ti,CUDA要安装10以上,请参考下篇博文。

值得注意:如果安装了CUDA9.0,GPU版本Pytorch 最高只能安装到1.1.0这个版本,TF最高只能安装到1.12.0这个版本,请考虑后决定安装CUDA版本,如果先安装了CUDA9,之后想升级Pytorch、TF,也可以升级对应的CUDA版本.

Python 3.6

首先安装 Python 3.6,这里使用 Anaconda 3 来安装,下载地址:https://www.anaconda.com/download/#linux,点击 Download 按钮下载即可,这里下载的是 Anaconda 3-5.1 版本,如果下载速度过慢,强烈建议选择使用清华镜像

下载下来之后目录下会出现一个 Anaconda3-5.1.0-Linux-x86_64.sh 文件,然后直接执行即可安装:

bash Anaconda3-5.1.0-Linux-x86_64.sh

执行完毕之后按照默认设置走下来即可完成安装。

这里默认它会安装到用户目录下,如果想全局安装,可以在这一步输入你要安装的地址:

Anaconda3 will now be installed into this location:
/home/wy/anaconda3

  - Press ENTER to confirm the location
  - Press CTRL-C to abort the installation
  - Or specify a different location below

[/home/wy/anaconda3] >>> /usr/local/anaconda3
PREFIX=/usr/local/anaconda3

这里我指定了将其安装到 /usr/local/anaconda3 目录下,全局安装,所有用户共享,当然如果只想本用户使用的话使用默认配置即可。

安装完成之后添加 python3 和 pip3 的软链接:

sudo ln -s /usr/local/anaconda3/bin/python3 /usr/local/sbin/python3
sudo ln -s /usr/local/anaconda3/bin/pip /usr/local/sbin/pip3

这里是将软连接其添加到 /usr/local/sbin 目录下了,它默认会存在于环境变量中,因此可以直接调用。

当然也可以选择把 /usr/local/anaconda3/bin 目录添加到环境变量中,具体地,可以修改 ~/.bashrc 文件,添加如下内容:

export PATH=/usr/local/anaconda3/bin${PATH:+:${PATH}}

然后执行:

source ~/.bashrc

即可生效,下次登录时也会默认执行 ~/.bashrc 文件,也会生效。

接下来我们验证下 python3、pip3 命令是否都来自 Anaconda,命令如下:

pip3 -V
pip 9.0.1 from /usr/local/anaconda3/lib/python3.6/site-packages (python 3.6)
which python3
/usr/local/anaconda3/bin/python3
python3
Python 3.6.4 |Anaconda, Inc.| (default, Jan 16 2018, 18:10:19) 
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

如果输入 pip3 和 python3 命令能出现如上类似结果,路径都在 /usr/local/anaconda3,就证明 Python 3 安装成功了。

安装驱动

首先查看一下自己的电脑需要怎样的驱动,我们可以先到 http://www.nvidia.com/Download/index.aspx 查询下我们需要的是怎样的驱动,这里我的显卡是 GTX 1080,所以以此为例说明,勾选好对应的配置:

点击 Search,可以看到查询结果如下所示:

Version:    390.25
Release Date:    2018.1.29
Operating System:    Linux 64-bit
Language:    English (US)
File Size:    77.48 MB

这里说明我们需要的版本是 390.25

接下来如果我们之前安装了驱动的话,可以重新安装一下,如果当前已经安装好了就不必了。

如果要重装,需要首先卸载掉之前的显卡驱动,以下操作都需要在命令界面操作,执行Ctrl-Alt+F1快捷键进入命令界面:

sudo apt-get remove –purge nvidia*

运行之后 NVIDIA 的一些驱动就被卸载了。

这时候 nvidia-smi 等命令已经不能用了,这就证明显卡驱动已经被卸载了。

然后接下来添加一个 PPA 源,命令如下:

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

然后更新一下:

sudo apt-get update

随后重新安装显卡驱动:

sudo apt-get install nvidia-390

注意这里的 390 就是刚才我们查询出来的版本,以实际查询出来的版本为准。

CUDA 9.0

如果存在之前的旧版本,可以选择先卸载,以免和新的 CUDA 版本产生冲突,如果之前安装了CUDA 8.0在 /usr/local/cuda-8.0/bin 目录下有一个 uninstall_cuda*.pl 文件,可以直接运行卸载,命令如下:

sudo ./uninstall_cuda_*.pl
或
sudo /usr/local/cuda-8.0/bin/uninstall_cuda_8.0.pl

卸载之后,还有一些残留的文件夹,之前安装的是CUDA 8.0,可以一并删除:

sudo rm -r /usr/local/cuda-8.0/

这样即可将 CUDA 全部卸载。

接下来我们再下载 CUDA 9.0,注意 TensorFlow 1.5 和 1.6 版本依然只是兼容 CUDA 9.0,没有兼容 CUDA 9.1,所以不要下载 9.1,CUDA 9.0 的下载地址是:https://developer.nvidia.com/cuda-90-download-archive,然后依次勾选好系统的版本.

这里我们选择 Linux-x86_64-Ubuntu-16.04-runfile 的配置,然后点击 Base Installer 部分的 Download 按钮,下载 CUDA 9.0 安装包。

对应的下载命令是:

wget https://developer.nvidia.com/compute/cuda/9.0/Prod/local_installers/cuda_9.0.176_384.81_linux-run

执行此命令,等待下载完成即可。

接下来执行安装,运行如下命令:

sudo bash cuda_9.0.176_384.81_linux-run

安装过程需要输入一些确认选项,过程如下:

Description

The NVIDIA CUDA Toolkit provides command-line and graphical
tools for building, debugging and optimizing the performance
Do you accept the previously read EULA?
(是否同意条款,必须同意才能继续安装)
accept/decline/quit: accept
(这里不要安装驱动,因为已经安装最新的驱动了,否则可能会安装旧版本的显卡驱动,导致重复登录) 
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 384.81?
(y)es/(n)o/(q)uit: n

Install the CUDA 9.0 Toolkit? (是否安装CUDA 9 ,这里必须要安装)
(y)es/(n)o/(q)uit: y

Enter Toolkit Location   (安装路径,使用默认,直接回车就行)
 [ default is /usr/local/cuda-9.0 ]: 

Do you want to install a symbolic link at /usr/local/cuda?  (同意创建软链接)
(y)es/(n)o/(q)uit: y

Install the CUDA 9.0 Samples?  (安装测试)
(y)es/(n)o/(q)uit: y

Enter CUDA Samples Location    (安装路径,使用默认,直接回车就行)
 [ default is /home/cqc ]: 

Installing the CUDA Toolkit in /usr/local/cuda-9.0 ...  (开始安装)

最后如果出现这样的提示,就证明 CUDA 安装好了:

Driver:   Not Selected
Toolkit:  Installed in /usr/local/cuda-9.0
Samples:  Installed in /home/cqc, but missing recommended libraries

Please make sure that
 -   PATH includes /usr/local/cuda-9.0/bin
 -   LD_LIBRARY_PATH includes /usr/local/cuda-9.0/lib64, or, add /usr/local/cuda-9.0/lib64 to /etc/ld.so.conf and run ldconfig as root

To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-9.0/bin

Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-9.0/doc/pdf for detailed information on setting up CUDA.

***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 384.00 is required for CUDA 9.0 functionality to work.
To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:
    sudo <CudaInstaller>.run -silent -driver

然后我们需要配置一下环境变量,更改 ~/.bashrc 文件,添加如下几行:

export PATH=/usr/local/cuda/bin$&#123;PATH:+:$&#123;PATH&#125;&#125;
export LD_LIBRARY_PATH=/usr/local/cuda/lib64$&#123;LD_LIBRARY_PATH:+:$&#123;LD_LIBRARY_PATH&#125;&#125;
export CUDA_HOME=/usr/local/cuda

修改完毕之后执行一下使其生效:

source ~/.bashrc

这时我们输出 CUDA_HOME、LD_LIBRARY_PATH 就可以看到对应的输出了:

echo $CUDA_HOME
/usr/local/cuda
echo $LD_LIBRARY_PATH
/usr/local/cuda/lib64
nvcc -V

或者:

nvidia-smi

这样就代表环境变量生效了,CUDA 安装完成。

cuDNN 7.1

cuDNN 的全称是 The NVIDIA CUDA® Deep Neural Network library,是专门用来对深度学习加速的库,它支持 Caffe2, MATLAB, Microsoft Cognitive Toolkit, TensorFlow, Theano 及 PyTorch 等深度学习的加速优化,目前最新版本是 cuDNN 7.1,接下来我们来看下它的安装方式。

下载链接:https://developer.nvidia.com/rdp/cudnn-download,或者 cuDNN Download 需要注册之后才能打开,这里我们选择 cuDNN v7.1.1 (Feb 28, 2018), for CUDA 9.0,然后选择 cuDNN v7.1.1 Library for Linux:

下载下来之后解压安装即可:

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

执行完如上命令之后,cuDNN 就安装好了,这时我们可以发现在 /usr/local/cuda/include 目录下就多了 cudnn.h 头文件。

ubuntu16.04查看CUDA和cuDNN版本

cuda版本查看:

cat /usr/local/cuda/version.txt

cudnn版本查看:

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

TensorFlow 1.8

到现在为止 Python 3.6、CUDA 9.0 和 cuDNN 7.1 就已经安装好了,而且环境变量也配置好了,接下来我们直接安装 TensorFlow 1.8 即可,TensorFlow 1.8 版本针对 CUDA 9 和 cuDNN 7 做了优化,可以预构建二进制文件。

这里需要安装的是 TensorFlow 的 GPU 版本,命令如下:

pip3 install tensorflow-gpu==1.8.0

你会发现上面安装特别慢,强烈建议使用 国内pypi源加速 , 速度超快啊!!!

pip3 install tensorflow-gpu==1.8.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

安装完成之后验证一下:

python
import tensorflow as tf
tf.__version__
tf.__path__

如果没有报错,那就证明全部环境配置都成功了。

如果您的tensorflow安装后不能使用,请考虑tensorflow版本和CUDA、cuDNN版本的兼容问题,请自行百度,也可参考本博文下方链接。。

Pytorch 1.1

pytorch官网:https://pytorch.org/

打开官网,可以按照选择安装方式(pip , conda, source)和 python版本,cuda版本来进行安装,由于特殊的网络国情,一般是打不开,或者是无法查看 run the command 之后的指令的。

你会发现上面安装特别慢,强烈建议使用 国内pypi源加速 , 速度超快啊!!!

pip3 install torch==1.1.0 torchvision==0.3.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

如果已经安装torch,仅仅想更新环境,pip升级torch命令如下,注意,如果不像上面指定版本,将更到最新版本!

pip3 install --upgrade torch torchvision -i https://pypi.tuna.tsinghua.edu.cn/simple

安装pytorch命令合集.

配置 ssh 远程连接

1)安装 open-ssh

apt-get install openssh-server

2)修改权限,允许 ssh 登录 root

gedit /etc/ssh/sshd_config

注释 :PermitRootLogin prohibit-password
添加: PermitRootLogin yes

3)重启 ssh

service ssh restart

设置Ubuntu 16.04 允许进行远程控制

请参考 VNC实现Windows远程访问Ubuntu 16.04(无需安装第三方桌面,直接使用自带远程工具) .

Windows全能终端神器MobaXterm安装

主要功能

支持各种连接SSH,X11,RDP,VNC,FTP,MOSH
支持Unix命令(bash,ls,cat,sed,grep,awk,rsync,…)
连接SSH终端后支持SFTP传输文件
各种丰富的插件(git/dig/aria2…)
可运行Windows或软件

官网下载地址

No module named ‘cv2’等python库解决方法

只要是缺少的python库文件,请善用 国内pypi源加速 , 速度超快啊!!!

pip3 install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple

Python包更新方法

当你需要更新python包时,还是那句话,请善用 国内pypi源加速 , 速度超快啊!!!

如:我当前需要更新pip

pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple

Ubuntu下python开发IDE专业版Pycharm的安装

请自行百度,可参考 https://blog.csdn.net/CAU_Ayao/article/details/80578600 进行安装。

Ubuntu下Markdown编辑器Typora的安装

一个优雅的markdown编辑器,支持mac,windows,linux全平台,是一款支持实时预览的 Markdown 文本编辑器 ,完全免费

官方下载地址 | 史上最完美的 Typora 教程

TeamViewer 远程控制桌面工具安装

TeamViewer主要是用来连实验室的电脑,也可以用用 AnyDesk, 两个都是全平台的.

1.官网下载安装包

网址:https://www.teamviewer.com/cn/download/linux/
下载amd64版本

2.安装

sudo dpkg -i teamviewer_14.1.3399_amd64.deb

3.问题解决

可能存在依赖问题,安装不了,终端输入:

sudo apt install -f

重新输入:

sudo dpkg -i teamviewer_14.1.3399_amd64.deb

问题解决!

以上便是 Ubuntu 16.04 + Nvidia GTX 1080 + Python 3.6 + CUDA 9.0 + cuDNN 7.1 + TensorFlow 1.8 + Pytorch 1.1 + ssh远程连接设置+ Ubunt桌面远程控制等 完整环境配置过程。

注意:RTX 2080 Ti显卡的环境安装过程略有不同,RTX 2080Ti,CUDA要安装10以上。

当您程序报错:

THCudaCheck FAIL file=/pytorch/aten/src/THC/THCGeneral.cpp line=405 error=11 : invalid argument

原因:显卡用的RTX 2080Ti,CUDA就要装10以上,

方案一: 通过pytorch官发链接pip装,命令如下:

pip3 install https://download.pytorch.org/whl/cu100/torch-1.0.0-cp36-cp36m-linux_x86_64.whl

发现速度实在太慢!!于是我们考虑

方案二: 离线安装

注意方案一 在控制台出现的下载路径,复制到浏览器,手动下载:

如,到指定路径下载torch1.0:https://download.pytorch.org/whl/cu100/torch-1.0.0-cp36-cp36m-linux_x86_64.whl ,将本地文件上传到服务器指定位置,路径换到压缩包所在位置,在控制台输入指令:

pip3 install torch-1.0.0-cp36-cp36m-linux_x86_64.whl
pip3 install torchvision==0.2.1

方案三: 以上两种方案纯属呵呵🙂,强烈建议使用 国内pypi源加速 , 直接安装pytorch最新版本,最新版本做了诸多优化!通过pypi镜像安装速度超快啊 ★★★★★

pip3 install torch torchvision -i https://pypi.tuna.tsinghua.edu.cn/simple

这样就安装好啦,然后逐行输入以下命令,测试会输出torch版本1.2.0,torchvision版本0.4.0

python 
import torch,torchvision
torch.__version__           (查看torch版本)
torchvision.__version__     (查看torchvision版本)
torch.__path__              (查看torch安装路径)    
torchvision.__path__        (查看torchvision安装路径)
torch.cuda.is_available()   (查看本机CUDA是否可用)
torch.version.cuda          (查看torch版本对应的CUDA版本,本机安装不可低于此CUDA版本)

RTX 2080Ti,CUDA要安装10以上,否则报错,原因详见:

国内常见的pypi源

清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:http://pypi.hustunique.com/
山东理工大学:http://pypi.sdutlinux.org/ 
豆瓣:http://pypi.douban.com/simple/

他山之石:


   转载规则


《深度学习GPU环境搭建-上篇》 王雨 采用 知识共享署名 4.0 国际许可协议 进行许可。
  目录