1. 程式人生 > >深度學習環境搭建:linux下 Ubuntu16.04+cuda8.0+cudnn+anaconda+tensorflow並配置遠端訪問jupyter notebook

深度學習環境搭建:linux下 Ubuntu16.04+cuda8.0+cudnn+anaconda+tensorflow並配置遠端訪問jupyter notebook

本文主要介紹了linux系統下深度學習系統的搭建,主要的安裝思路如下:

linux系統安裝:

首先安裝當下熱門的linux作業系統Ubuntu16.04,系統下載的連結如下:

(一)顯示卡驅動安裝:

安裝完系統後,安裝1080ti的顯示卡驅動,可以在Nvidia的官網下載到驅動

下載完成後,把檔案放在系統的預設資料夾下,作者把檔案放在home下,nvidia官網的下載的介面如下:


然後進入linux的指令操作介面,首先我們關閉X-server,如果不關閉無法進行顯示卡驅動的安裝,輸入:

sudo lightdm stop


然後安裝剛剛下載完成的1080ti的驅動,假設你下載下來的檔名是:1080ti.run

chmod +x 1080ti.run
sudo ./1080ti.run



這裡注意:安裝時會出現類似於“”安裝使用者須知“”的文件,一直按“”enter“”是沒法跳過的,直接用“ctrl+c”跳過,然後輸入“”accept“”

(二)CUDA安裝:

CUDA的安裝一切以官方文件為準,若遇到問題,沒有辦法的話可以參考官方文件: GCC降級

在安裝CUDA前,需要對ubuntu的GCC進行降級,否則CUDA無法編譯通過,我第一次安裝就是因為GCC未降級,跑mnist時未能呼叫GPU執行。具體參見如下連結:

軟體安裝

為了加速訓練時的速度,接著我們進行cuda和cudnn的安裝,進入nvidia的官網,下載cuda,作者選擇的配置如圖所示:


如果你的檔名為:cuda_8.0.61_375.26_linux.run

那麼進入命令列介面,輸入:

chmod +x cuda_8.0.61_375.26_linux.run
sudo ./8.0.61_375.26_linux.run
同樣會出現之前的“”安裝使用者須知“”,按下“”ctrl+c跳過“”

為CUDA新增環境變數:

安裝完cuda後,需要新增環境變數,假設CUDA是預設的安裝路徑,開啟終端,具體的操作如下:
sudo gedit ~/.bashrc
在開啟的文字檔案末尾加上兩行寫入:
export PATH=/usr/local/cuda-8.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH
繼續新增:
sudo gedit /etc/profile
在開啟的檔案中輸入: 注意:這一行程式碼網上很多是錯誤的,PATH與後面的等號不能存在空格
export PATH=/usr/local/cuda/bin:$PATH
建立連結檔案,在命令列輸入:
sudo gedit /etc/ld.so.conf.d/cuda.conf
在開啟的檔案末尾加上一行儲存:
/usr/local/cuda/lib64


(三)CUDNN安裝:

CUDNN的下載比較麻煩,需要註冊Nvidia的賬號,註冊完成之後,下載cudnn6.0:

然後進行解壓,並將檔案覆蓋到指定目錄,具體操作如下,作者使用的是cuda6.0,

不同版本的cudnn需要進行對應的更改,進入cudnn下載的目錄,然後:

tar xvzf cudnn-8.0-Linux-x64-v5.1.tgz 
sudo cp cuda/include/cudnn.h /usr/local/cuda/include 
sudo cp cuda/lib64/libcudnn.so* /usr/local/cuda/lib64 
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn.so*​ 
sudo ln -sf libcudnn.so.5.1.5 libcudnn.so.5
sudo ln -sf libcudnn.so.5 libcudnn.so
sudo ldconfig

注意:作者這裡最後使用的時CuDNN5.1的版本,但操作方式相同,原因會在後面詳細說明

(四)Tensorflow安裝:

anaconda安裝:

和N卡相關的軟體我們都已安裝好,在安裝tensorflow前,先進行科學計算庫anaconda的安裝。

本文是基於anaconda安裝tensorflow的,在官網上下載對應的安裝包,作者選擇的是linux 64位 ,Python版本為2.7


安裝完anaconda以後,使用conda命令在終端下新建一個tensorflow的環境,

輸入指令後系統會自動下載所依賴的軟體庫

conda create -n tensorflow python=2.7


tensorflow安裝:

進入正題了,首先進入tensorflow的環境,輸入:

source activate tensorflow

(這一步時配置tensorflow環境,tensorflow還未安裝)

進入tensorflow環境後,開始安裝tensorflow,輸入:
pip install tensorflow


如果下載速度過慢,可以搭個梯子,在github上tensorflow的官網也可下載

安裝完tensorflow後,在終端中進入python

測試

python
import tensorflow as tf


若沒有報錯,則安裝成功

jupyter notebook安裝:

在終端下顯然不能夠便捷地除錯和編譯深度學習程式,因此作者推薦安裝jupyter notebook,同樣地,開啟終端,進入tensorflow環境,輸入:

pip install jupyter notebook
安裝完成後,在終端輸入 jupyter noteook即可開啟,記住要在tensorflow的環境下開啟,因為我們是把jupyter安裝在此環境下的。

(五)遠端連線教程:

為了方便遠端操控,作者用windows7遠端連線安裝好上述功能的linux作業系統,具體步驟如下:

windows端:

下載putty用於遠端連線linux,在此處輸入目標計算機的ip地址


登入到遠端計算機後,輸入賬戶和密碼,就可以進入遠端計算機的終端了(請先配置完linux端再進行此操作)


linux端

這裡作者推薦這兩篇部落格,寫的很詳細,交叉閱覽,很快能掌握:

解決了如何生成祕鑰的問題:

解決了如果登陸失敗,則有可能是伺服器防火牆設定的問題

(六)總結一下安裝思路:

(1)先安裝linux作業系統,

(2)安裝對應的顯示卡驅動,以及深度學習用的加速庫CUDA和CUDNN。

(3)安裝anaconda

(4)在tensorflow環境下安裝tensorflow和jupyter notebook

(5)遠端配置


(七)目前已知安裝過程中遇到的問題彙總

安裝過程中遇到很多問題,這裡把問題都貼出來以減少大家的重複安裝時間

(1)CuDNN版本選擇

在配置CuDNN時,我一開始選擇的版本是CuDNN6,但是因為我tensorflow中,整合的時cuda8.0+CuDNN5.1版本,因此在執行mnist時,會提示:

缺少cuda5.0,no such file or directory。解決這個問題有兩個辦法:

1.如果想使用6.0的CuDNN直接去github上面下載tensorflow的原始碼,使用bazel進行編譯,具體可以參考這篇使用bazel編譯tensorflow的教程:

2.在nvidia的網站上下載CuDNN5.1版本,按照(三)中的流程重新覆蓋安裝

(2)配置SSH遠端訪問
如果按照(五)中配置完jupyter notebook的遠端訪問還不能訪問,一種原因是因為沒有安裝SSH server,這裡給出安裝ssh server的網址:

有很詳細的linux端配置ssh教程和如何在windows端連線的教程

(3)啟動流程

linux端:按下啟動鍵,windows端:開啟putty,遠端訪問linux主機,啟動tensorflow環境,啟動jupyter notebook,在瀏覽器中開啟jupyter notebook。此時執行mnist例子是沒有問題的。給出一個mnist例子的連結:

複製裡面的convolutional_network到你新建的jupyter notebook下,然後執行。 (4)TIPS 1.在訓練過程中,如果需要檢視顯示卡使用情況可以在終端輸入檢視:
nvidia-smi
2.如果在linux上的下載速度太慢,可以在windows搭梯子,提前把tensorflow和numpy等安裝包下載好,然後直接pip install下載的檔案就可以了。 (5) GCC自動升級問題:
用了一週左右,發現gcc自動升級到5.4之後,跑程式的時候無法使用cuda加速了。 解決辦法:降級GCC到4.9

此外,對linux作業系統不熟悉的讀者,安裝過程中可能會出現很多問題,因此我推薦一些我安裝時查閱的部落格和網站,其次大家可以把遇到的問題放在百度裡面搜尋,搭建環境這類的部落格文章很多

參考文獻: