深度学习环境配置

515 阅读3分钟
原文链接: zdwlove.com

   最近在实验室疯狂的跟N卡杠上了,无限次的重装系统和无限次的搭建深度学习环境,我都快背熟了.不过还是mark起来好.

服务器配置

  • 硬件:1080Ti显卡x4
  • 系统ubuntu18.04
    ## 系统
    $ lsb_release -a
    No LSB modules are available.
    Distributor ID:	Ubuntu
    Description:	Ubuntu 18.04.2 LTS
    Release:	18.04
    Codename:	bionic
    
    ## 内核版本
    $ uname -a
    Linux ubuntu 4.18.0-15-generic #16~18.04.1-Ubuntu SMP Thu Feb 7 14:06:04 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
    
    $ cat /proc/cpuinfo | grep model\ name
    model name	: Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz
    model name	: Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz
    model name	: Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz
    model name	: Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz
    model name	: Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz
    model name	: Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz
    
    $cat /proc/meminfo | grep MemTotal
    MemTotal:       131897972 kB
    
    $ df -lh
    文件系统        容量  已用  可用 已用% 挂载点
    udev             63G     0   63G    0% /dev
    tmpfs            13G  4.5M   13G    1% /run
    /dev/sda1       938G  306G  586G   35% /
    tmpfs            63G  1.6M   63G    1% /dev/shm
    tmpfs           5.0M  4.0K  5.0M    1% /run/lock
    tmpfs            63G     0   63G    0% /sys/fs/cgroup
    /dev/loop1      3.8M  3.8M     0  100% /snap/gnome-system-monitor/57
    /dev/loop0       35M   35M     0  100% /snap/gtk-common-themes/1122
    /dev/loop2      2.3M  2.3M     0  100% /snap/gnome-calculator/260
    /dev/loop3       91M   91M     0  100% /snap/core/6350
    /dev/loop4       35M   35M     0  100% /snap/gtk-common-themes/818
    /dev/loop6      141M  141M     0  100% /snap/gnome-3-26-1604/82
    /dev/loop7      141M  141M     0  100% /snap/gnome-3-26-1604/74
    /dev/loop5       15M   15M     0  100% /snap/gnome-logs/45
    /dev/loop8       91M   91M     0  100% /snap/core/6405
    /dev/loop9      141M  141M     0  100% /snap/gnome-3-26-1604/78
    /dev/loop10      36M   36M     0  100% /snap/gtk-common-themes/1198
    /dev/loop11      13M   13M     0  100% /snap/gnome-characters/139
    tmpfs            13G   28K   13G    1% /run/user/121
    tmpfs            13G   68K   13G    1% /run/user/1000
    /dev/sdb1       7.3T   51M  6.9T    1% /media/ubuntu/e298f941-0d0a-4caa-89ca-567533ee2ea8
    /dev/sdc2       3.7T  118G  3.6T    4% /media/ubuntu/Seagate Expansion Drive
    
    ## 其实一条命令就可以查看全部的硬件设置了 ,后面接的是-t选项
    ## 内容包括bios, system, baseboard, chassis, processor, memory, cache, connector, slot
    $ sudo dmidecode
    

软件包下载

  • 显卡驱动
    Nvidia网站下载相应版本的显卡驱动,这里我选择的是最新的版本号为418.43,或者点击这个链接直接下载

    1.GeForce 
    2.GeForce 10 Series 
    3.GeForce GTX 1080 Ti 
    4.Linux 64-bit 
    5.Chinese(Simplified)
    
  • cuda选择

  由于最新版的cuda版本是10.1*的,我尝试过,但是最后发现tensorflow最高版本1.13只能支持
  cuda10.0的版本,如果安装10.1版本,最后tensorflow会发现找不到cuda10.0(巴拉巴拉的).so文件
  什么鬼的,所以老老实实使用cuda10.0的就好.一般是去cuda官网下载runfile文件,但是这个
  cuda10.0超级难找的, 直接给链接(版本号为cuda_10.0.130_410.48)

  • cudnn下载

  去官网下载和cuda对于的版本,千万不要作死选其他的.

  • Anaconda下载

  墙裂推荐清华的源,特别佩服清华爸爸,里面好多东西,需要科学上网的才能下载的包,是他拯救了我
  的网速,下载链接版本号Anaconda3-5.0.0-Linux-x86_64.sh

安装

准备工作

  • 按crtl+alt+f3(ubuntu16.04是crtl+alt+f1)进入tty
  • 禁用 lightdm 桌面服务

    ### 特别重要的一步,一定要做的啊
    sudo service lightdm stop
    
  • 列入黑名单,禁用nonveau

    $ sudo vim /etc/modprobe.d/blacklist.conf
        blacklist vga16fb
        blacklist nouveau
        blacklist rivafb
        blacklist rivatv
        blacklist nvidiafb
    

然后重启一波,重启后输入

$ lsmod | grep nouveau
## 查看nouveau是否启用

安装显卡驱动

  • 进入tty,设置权限

    $ sudo chmod a+x NVIDIA-Linux-x86_64-418.43.run
    
  • 安装

    $ sudo sh NVIDIA-Linux-x86_64-418.43.run -no-opengl-files
    # -no-opengl-files # 只安装驱动文件,不安装 opengl 文件(核显输出,独显运算)
    

安装cuda

  • 权限

    $ sudo chmod a+x cuda_10.0.130_410.48_linux.run
    
  • 安装

    $ bash cuda_10.0.130_410.48_linux.run
    # 询问'Install NVIDIA Accelerated Graphics Driver for 410.48.',选择N,这是因为我们之前安装的N卡驱动是418的,这里这个cuda默认的是410.48,所以为了不覆盖,我们选择N
    
  • 环境变量

    $ vim ~/.bashrc
    
    export PATH=$PATH:/usr/local/cuda-10.0/bin
    export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64
    

安装cudnn

  • 解压

    $ tar -zxvf cudnn-10.0-linux-x64-v7.5.0.56.tgz
    
  • 复制

    $ cd cuda
    $ sudo cp lib64/*     /usr/cuda10.0/lib64/
    $ sudo cp include/*   /usr/cuda10.0/include/
    

检测安装是否成功

解除 lightdm
$ sudo service lightdm start 
进入界面 crtl+alt+f1
$ nvidia-smi
$ nvcc -V
# 如果显示成功就是安装成功的了,一般是成功的(相信我)

问题

  • 卸载显卡驱动
    有些同学会发现如果安装失败,会有一个很尴尬的情况,那就是无限循环登录界面.
    这个时候解决办法是卸载显卡驱动

    ##tty下
    $ sudo service lightdm stop 
    $ sudo /usr/bin/nvidia-uninstall
    ## 或者
    $ sudo apt-get install autoremove --purge nvidia*
    
  • 卸载cuda

    $ sudo /usr/local/cuda-10.0/bin/uninstall_cuda-10.0.pl
    
  • 屏幕分辨率问题和设置
    就是安装显卡驱动的时候会出现分辨率不是16:9的情况,变成4:3,超级难看的这里mark一下,改成16:9分辨率.首先看下设置-设备-显示,如果没有出现所要的分辨率

    sudo xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
    sudo xrandr --addmode VGA-1 "1920x1080_60.00"
    

  不用重启就可以直接看到设置里面多了1920x1080的选项,接下来就可以愉快的使用了

框架安装

安装anaconda

这个超级简单的

  • 权限

    $ sudo chmod a+x Anaconda3-5.0.0-Linux-x86_64.sh
    
  • 安装

    $ ./Anaconda3-5.0.1-Linux-x86_64.sh
    #询问安装路径,默认回车
    #询问环境变量,选择yes
    强制更新环境变量
    source ~/.bashrc
    
  • 首先默认系统软件更新使用清华的源,主要是apt-get的那个更新和install

    $ sudo vim /etc/apt/sources.list
    # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-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/ xenial-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/ xenial-security main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
    
    # 预发布软件源,不建议启用
    # deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
    
    #修改完毕,使其生效
    $ sudo apt-get update 
    $ update source list
    
  • tensorflow

  直接pip使用清华的源

# 升级 pip 到最新的版本 (>=10.0.0) 后进行配置:
pip install --upgrade pip
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

  conda也行,不过我觉得conda慢死了

$ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
$ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
$ conda config --set show_channel_urls yes

  或者安装时中加源

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

  • pytoch
    去官网,需要科学上网哦,选择特定的版本,直接命令行搞定,超级慢的,建议睡觉前安装,哈哈哈
    $ conda install pytorch torchvision cudatoolkit=10.0 -c pytorch
    

完毕

不过我还是最喜欢keras,越来越不喜欢tensorflow,越做越复杂,当然应该是我菜哈哈哈.
接下来可以在Deeplearning下翱翔了.