深度學習訓練環境離線搭建: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())

    最後總結,無論配置什麼環境,要耐心仔細。只要功夫深,鐵杵磨成針。

 

 

 

 

 

 

 

 

 

 

 

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