深度学习训练环境离线搭建:CentOS7 linux 服务器安装 tensorflow_gpu1.9、cuda9、cudnn7、anaconda3-4.3、python3.6

1 简述

    最近需要在 CentOS7 linux 服务器上配置深度学习的训练环境。

    那么,该怎么做呢?

    对于一台服务器,首先得实现连网,然后进行远程登陆。

    其次,搞清楚安装什么软件,如何安装,有哪些依赖项需要提前安装。

    最后,需要进行简单的测试验证是否成功安装。

    难点,一般公司的服务器可能不通外网,不能使用那些一键安装指令。

    基于服务器的配置(2cpu,8gpu),我选择 tensorflow-gpu1.9、cuda9、cudnn7、anaconda3-4.3、python3.6 构建整个深度学习的训练环境。

    接下去,我将逐步介绍主要的操作。

2 软件安装

2.1 实现服务器的远程连接

    具体参照我之前的博文win10 用 Cecure CRT 远程连接 CentOS7 linux报错:The remote system refused the connection.,主要配置 /etc/sysconfig/network-script 目录下的网卡配置文件。

2.2 安装 anaconda

    anaconda 用于方便地管理 python 三方库。

    下载镜像文件(sh文件),放到 /usr/local/src 文件夹下(你也可以选择其他文件夹)。

 

    使用 bash 指令安装 sh 文件:
  • 询问是否接受协议(输入q,迅速跳过文字),输入yes
  • 询问安装路径,输入/opt/anaconda3
  • 询问路径.bashrc(yes表示当前用户有效),输入no

    设置环境变量:

  • 输入 vim/etc/profile
  • 编辑文件,输入:

export ANACONDA_HOME=‘/opt/anaconda3’(安装路径)

export PATH=$ANACONDA_HOME/bin:$PATH 

    验证是否成功安装:终端输入 python,出现以下显示即为成功安装:

 

            
 

 

2.3 安装显卡驱动

    有两种方法可以安装,一种是安装 cuda 的时候选择安装显卡驱动,一种是直接到官网下载安装(驱动下载网址:http://www.nvidia.cn/Download/index.aspx?lang=cn)我用第一种方法安装后,显示安装成功,但是 tensorflow 找不到 GPU,后来索性到官网下载驱动安装。但是官网下载驱动吧,也是贼鸡儿坑,每秒几 k 的下载速度不说,还老是中断,中断了就得重新下。一怒之下,到 CSDN 的下载区域下了个版本不匹配的,索性能用。此处 CSDN 值得表扬。
    下载前,先输入以下,查看自己用啥显卡。
lspci | grep -i NVIDIA

 

    然后屏蔽 nouveau 模块:
  • vi /usr/lib/modprobe.d/dist-blacklist.conf
  • 将nvidiafb注释掉,#blacklist nvidiafb
  • 然后添加以下语句:
  • blacklist nouveau
  • options nouveau modeset=0

    接下去重建 initramfs image:

  •    mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
  • dracut -v /boot/initramfs-$(uname -r).img $(uname -r)

    最后检查是否屏蔽成功 :

    输入:lsmod | grep nouveau,无输出表示屏蔽成功。

2.4 安装 CUDA

    cuda 9.2 版本是个坑,没有对应的 tf 版本可以用,下载 9.0 版本就蛮好。
    安装:
   sh 指令安装

安装位置:推荐 /usr/local/cuda

  • 接受协议
  • opengl:no
  • x configuration:no
  • tookit:yes
  • symbolic:yes
  • samples:yes

安装完显示:

修改环境变量:

  • 输入:vim  ~/.bash_profile
  • 在export下方输入:

  • export PATH="/usr/local/cuda-9.0/bin:$PATH"

  • export LD_LIBRARY_PATH="/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH"
  • 运行文件,输入:source ~/.bash_profile

检查是否成功安装,输入:nvidia-smi,显示:

输入:nvcc --version,显示:

 

 

2.5 安装 cudnn

    cudnn 是个加速包,没这个 gpu 版的 tf 还是不能跑。

    下载链接:https://developer.nvidia.com/rdp/cudnn-archive#a-collapse742-92

    需要注册,才能下载。推荐放置目录:/usr/local/src

    安装:

  • 解压文件,输入:tar xvf cudnn-9.2-linux-x64-v7.6.4.38.tgz
  • 解压的文件在cuda目录(解压时候自己创建的/usr/local/src/cuda)下面
  • 复制到/usr/local/cuda目录:
  • cp /usr/local/src/cuda/include/* /usr/local/cuda/include
  • cp /usr/local/src/cuda/lib64/*   /usr/local/cuda/lib64

2.6 安装 tensorflow-gpu

    安装 tf-gpu 版需要一些依赖包。安装过程提醒缺啥手动补齐。

    一些依赖包有编译好的轮子,那就直接用,把轮子里面 lib 路径下的东西放到你安装的 anaconda 目录下,anaconda3/lib/python3.6/site-packages。装完 conda list 显示的还是旧版本,pip show xxx,才是新的版本。

    野生未编译的轮子可以统一下载到: /usr/local/src 下面。

  • ./configure --prefix=/usr/local/src/xxx

  • make
  • make install

    安装 tf 的过程还是采了不少坑,主要体现在野生轮子编译 gg,总是莫名其妙的错误,后来发现公司镜像有编译好的轮子,真香。安装完 tf 后,import 的过程中也踩了不少坑,经常爆出缺乏 xxxx.so 文件,似乎是路径设置之类的问题,把 cuda lib64 下面所有的包放到 /lib64 下面了事。总之,黎明前的黑暗还要坚持坚持。

    最后看到 import 成功后,不要激动,万一成功的是 cpu 版呢..........这是我最后采的那个坑。

    为啥会踩坑,因为第一次安装 cuda 的时候选择显卡驱动,但是不知咋搞的,后来驱动失效了.......

    输入下面的代码,出现了 cpu 版,,,,这,,,,跑车愣是开到马路上了,,,,1公里10个红灯教你做人。

from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())

    最后总结,无论配置什么环境,要耐心仔细。只要功夫深,铁杵磨成针。

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章