深度学习配置环境全攻略

深度学习配置环境全攻略

1. 安装python2.7

外网链接教程

  • 安装所有必需的依赖项

    sudo apt-get update
    sudo apt-get install build-essential checkinstall
    sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
    
  • 下载python2.7

    cd /usr/src
    sudo wget https://www.python.org/ftp/python/2.7.16/Python-2.7.16.tgz
    sudo tar xzf Python-2.7.16.tgz
    
  • 安装python2.7

    cd /usr/src
    sudo wget https://www.python.org/ftp/python/2.7.16/Python-2.7.16.tgz
    sudo tar xzf Python-2.7.16.tgz
    
  • 检查python版本

    $ python2.7 -V
    Python 2.7.16
    

2. 修改apt-get源

sudo apt-get update
sudo apt-get upgrade
cd /etc/apt/
# 备份源
sudo cp sources.list sources.list.bk
# 把原换为清华源
sudo gedit sources.list

修改sources.list的内容为下面的设置

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

sudo apt-get update
sudo apt-get upgrade

3. 安装pycharm

官网社区版下载
修改pycharm内置pip源为国内清华源
https://pypi.tuna.tsinghua.edu.cn/simple/

4. 配置deeplearning环境

  • 安装所有必需的依赖项
sudo apt-get install build-essential python-dev python-numpy python-setuptools python-scipy libatlas-dev libatlas3-base

在pycharm里按顺序安装numpy–> scipy–> pandas–> matplotlib–>sklearn–>torch–>torchvision

  • 在Pycharm里面测试
import torch,torchvision
import numpy,sklearn
import matplotlib.pyplot as plt

output:

Process finished with exit code 0

5. 配置 Nvidia+cuda+cudnn

  • 检查自己的计算机是否具备CUDA安装条件

1)检查GPU是否支持CUDA

lspci | grep -i nvidia

显示出你的NVIDIA GPU版本信息

在这里插入图片描述

2)验证自己的Linux版本是否支持 CUDA(Ubuntu 16.04、Ubuntu17.04、Ubuntu18.04都支持)

uname -m && cat /etc/*release

在这里插入图片描述

3)验证是否安装了gcc

==> gcc --version
gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

4)验证系统是否安装了kernel header和 package development

uname -r
sudo apt install linux-headers-$(uname -r)

满足要求后,便可进行下面的正式安装过程。

  • 安装NVIDIA驱动

1)禁用nouveau驱动

lsmod | grep nouveau

如果有输出,则代表nouveau正在运行, 需要我们手动禁掉nouveau。

a.在/etc/modprobe.d中创建文件blacklist-nouveau.conf

sudo vim /etc/modprobe.d/blacklist-nouveau.conf

在文件中输入以下内容:

blacklist nouveau
options nouveau modeset=0

 
  • 1
  • 2

b.执行

$ sudo update-initramfs -u

c.查看nouveau是否已经成功禁用

$ lsmod | grep nouveau

  
  • 1

若无内容输出,则禁用成功,若仍有内容输出,请检查上述操作,并重复。
操作无误但仍有输出,则可重启登录成功后,再次查看

$ lsmod | grep nouveau

  
  • 1

这时,我们已经成功禁用了nouveau,无输出
这里我选择runfile安装,采用runfile安装,CUDA自带的驱动可能无法定位内核信息,所以我们先安装NVIIDA驱动。

3、安装NVIDIA驱动程序(如果事先有装但失败的,先卸载)

$ sudo apt remove --purge nvidia*

  
  • 1
  • 1
  • 1

2)关闭图形化界面

$ sudo service lightdm stop

 
  • 1

3)安装驱动
NVIDIA驱动安装也有多种方式,runfile文件形式的安装和apt安装

apt安装:

a.添加Graphic Drivers PPA

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

 
  • 1
  • 2

b.寻找合适的驱动版本

$ ubuntu-drivers devices

 
  • 1


如上图,显示GTX 960M显卡建议的驱动版本是390

c.安装nvidia driver

$ sudo apt install nvidia-390

 
  • 1

速度很慢(如果没有翻墙),还是下载runfile文件会快点
d.安装完成后,重启

$ sudo reboot

 
  • 1

runfile文件的安装先要安装gcc-multilib

$ sudo apt install gcc-multilib

 
  • 1

接着,以NVIDIA-Linux-x86_64-430.34.run为例

$ sudo sh NVIDIA-Linux-x86_64-430.34.run

 
  • 1

刚开始运行时,会有报错(预处理脚本错误,会问继续还是退出),不管错误继续,然后就是一路安装,重启即可。测试是否安装成功如上图所示。

4、安装CUDA 9.1
到NVIDIA官网中,找到CUDA9.1并下载

之后,按Ctrl+Alt+F1进入字符终端界面,登录成功后,
关闭图形化界面

$ sudo service lightdm stop

 
  • 1

找到下载文件的路径,键入下面的命令安装:

$ sudo sh cuda_9.1.85_387.26_linux.run

 
  • 1

单击回车,直到提示“是否为NVIDIA安装驱动?”
选择否,因为已经安装好驱动程序,其他都是默认。

最后你会看到cuda驱动、sample、tookit已经安装成功,但缺少一些库。

添加这些库

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

 
  • 1

重新启动图形化界面

$ sudo service lightdm start

 
  • 1

同时按住Alt + ctrl +F7,返回到图形化登录界面,输入密码登录。
如果能够成功登录,则表示不会遇到循环登录的问题,基本说明CUDA的安装成功了

检查Device Node Verification

$ ls /dev/nvidia*

 
  • 1


a、若结果显示

/dev/nvidia0    /dev/nvidiactl    /dev/nvidia-uvm

 
  • 1

或显示出类似的信息,应该有三个(包含一个/dev/nvidia-uvm的),则安装成功。
b、大多数结果可能会是这样

ls: cannot access/dev/nvidia*: No such file or directory

 
  • 1

或是这样的,只出现

/dev/nvidia0    /dev/nvidiactl

 
  • 1

a选项中的一个或两个,但没有/dev/nvidia-uvm,即文件显示不全。

解决方法:
首先要添加一个启动脚本

$ sudo vim /etc/rc.local

 
  • 1

这里附上rc.local的百度云链接:
链接:https://pan.baidu.com/s/1LFLUgev4FBjST2igw4LpAw ,提取码:63g4
这份rc.local并没有经过测试,原先测试过的rc.local丢了。如果发生错误,请对照下面修改。

把文件的第一行的#!/bin/sh -e中的-e去掉,
在#!/bin/sh和exit 0之间,添加以下内容

保存文件并重启,再次查看,这时你应该能直接看到/dev目录下的三个nvidia的文件
输入:

$ ls /dev/nvidia*

 
  • 1

结果显示:

/dev/nvidia0    /dev/nvidiactl    /dev/nvidia-uvm

 
  • 1

成功!

接着,设置环境变量。
终端中输入

$ sudo vim .bashrc

 
  • 1

当前用户下生效,如果是有特别的需求,可以在/etc/profile文件中设置

在打开的文件末尾,添加以下两行
64位系统:

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

 
  • 1
  • 2

32位系统:

$ export PATH=/usr/local/cuda-9.1/bin:$PATH
$ export LD_LIBRARY_PATH=/usr/local/cuda-9.1/lib:$LD_LIBRARY_PATH

 
  • 1
  • 2

保存文件,source .bashrc
检查上述的环境变量是否设置成功。

a.验证驱动版本

$ cat /proc/driver/nvidia/version

 
  • 1


b.验证CUDA Toolkit

$ nvcc -V

 
  • 1


最后,尝试编译cuda提供的例子,看cuda能否正常运行

打开终端输入

$ cd /home/user_name/NVIDIA_CUDA-9.1_Samples
$ make

 
  • 1
  • 2

系统就会自动进入到编译过程,整个过程大概需要十几到二十分钟,请耐心等待。如果出现错误的话,系统会立即报错停止。
如果编译成功,最后会显示Finished building CUDA samples,如下图所示。

运行编译生成的二进制文件。
编译后的二进制文件默认存放在NVIDIA_CUDA-9.1_Samples/bin中。
接着在终端中输入 :

$ cd bin/x86_64/linux/release
$ ./deviceQuery  

 
  • 1
  • 2

结果如下图所示:看到类似如下图片中的显示,则代表CUDA安装且配置成功,其中 Result = PASS代表成功,若失败 Result = FAIL

最后检查一下系统和CUDA-Capable device的连接情况
终端输入 :

$ ./bandwidthTest

 
  • 1

看到类似如下图片中的显示,则代表成功

cuDNN的安装是建立在我们成功安装cuda的基础上的,cuDNN同样需要我们去NVIDIA的官网下载适合cuda版本的deb文件或tgz文件,需要登陆NVIDIA账号

这里我以tgz文件的安装为例(cudnn-9.1-linux-x64-v7.tgz),
首先解压tgz文件

$ tar -xzvf cudnn-9.1-linux-x64-v7.tgz

 
  • 1

接着复制文件到cuda安装路径下,

$ 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 /usr/local/cuda/lib64/libcudnn*

 
  • 1
  • 2
  • 3

也可以下载deb文件进行安装

$ sudo dpkg -i libcudnn7_7.0.5.15-1+cuda9.1_amd64.deb
$ sudo dpkg -i libcudnn7-dev_7.0.5.15-1+cuda9.1_amd64.deb
$ sudo dpkg -i libcudnn7-doc_7.0.5.15-1+cuda9.1_amd64.deb

 
  • 1
  • 2
  • 3

最后,通过deb文件安装,/usr/src目录下会有cudnn_samples_v7,我们可以验证cudnn是否成功

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

 
  • 1
  • 2
  • 3
  • 4

成功安装,会提示“Test passed!"信息

如果提示库缺失错误,可参考以下命令

$ sudo cp /usr/local/cuda-9.1/lib64/libcudart.so.9.1 /usr/local/lib/libcudart.so.9.1 && sudo ldconfig
$ sudo cp /usr/local/cuda-9.1/lib64/libcublas.so.9.1 /usr/local/lib/libcublas.so.9.1 && sudo ldconfig
$ sudo cp /usr/local/cuda-9.1/lib64/libcurand.so.9.1 /usr/local/lib/libcurabd.so.9.1 && sudo ldconfig
$ sudo cp /usr/local/cuda-9.1/lib64/libcudnn.so.7 /usr/local/lib/libcudnn.so.7 && sudo ldconfig

 
  • 1
  • 2
  • 3
  • 4

参考文章链接:
1)http://blog.csdn.net/abc869788668/article/details/78331047
2)http://blog.csdn.net/qlulibin/article/details/78714596
3)http://www.cnblogs.com/devilmaycry812839668/p/6867780.html

                                </div>

版权声明:本文为qq_32896115原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。