Ubuntu18.04深度學習環境配置

1. 背景

爲了加速神經網絡的訓練,使用CPU訓練速度很慢,所以使用cuda和cudnn對神經網絡進行加速,在配置的過程中遇到了很多坑,大概配置了一兩天,各種坑,網上也有很多教程但是實現起來各種ERROR,真心覺得累。經過差不多兩天的時間終於把環境配置好。現將配置過程記錄如下。

2. 硬件與軟件版本

顯卡:GeForce GTX 1080ti

系統:Ubuntu 18.04

cuda:9.0版本

cuDNN: cuDNN v7.1.4

TensorFlow:1.12版本

Keras:默認安裝最新版

PyCharm:PyCharm2018專業版

3. 安裝NVIDIA驅動

我使用的是ppa源安裝的方式,因爲之前也從網上從官網上下載run文件進行安裝,但是但是後面出現崩潰,又得重新安裝,所以這裏只講解ppa源的安裝方式。

3.1 查看本機驅動版本

首先,確保機器在使用NVIDIA的顯卡,而非系統的nouveau驅動。
具體步驟:在軟件與更新->附加驅動中,不要選擇系統自帶的nouveau驅動,我們選擇帶有NVIDIA字樣的驅動選項,然後點擊應用更改,重啓。
並且我們可以看到顯卡驅動的版本,我這裏是390版本的驅動,下面我們來更新一下驅動。
在這裏插入圖片描述

3.2 添加Graphic Drivers PPA源

在終端輸入以下命令,添加PPA下載源,並更新源

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

3.3 查找最新驅動

同樣,在終端輸入下面命令,檢測你的NVIDIA圖形卡和推薦的驅動程序的模型。

ubuntu-drivers devices

結果如下圖:
在這裏插入圖片描述

從圖中可以看到,這裏有一個設備是GTX 1080Ti ,對應的驅動是NVIDIA -390, 396, 410和415,而推薦是安裝415版本的驅動。

這裏要說明一下,410和415版本的驅動是支持CUDA10.0以上版本的,而我們要安裝的深度學習環境,比如Tensorflow需要CUDA9.0版本,所以根據我們的需求可以選擇安裝390或396版本的驅動。

3.4 安裝最新驅動

通過以下命令安裝驅動

sudo apt-get install nvidia-driver-396

安裝後重啓

sudo reboot

我本機裝的是390版本的驅動,,考慮到396是BETA版本,沒有更新到396版本的驅動。此處根據個人需求進行安裝。

3.5 檢測驅動是否安裝成功

安裝完後,通過如下命令檢測是否安裝成功。

nvidia-smi
nvidia-settings

如果安裝成功會分別顯示結果如下圖:
在這裏插入圖片描述
在這裏插入圖片描述

4. CUDA9.0安裝

4.1 下載文件

下載地址:https://developer.nvidia.com/cuda-90-download-archive
我們按照自己機器的配置選擇,這裏選擇的是CUDA9.0版本,如下圖所示
在這裏插入圖片描述
從上圖中可以看出,對於ubuntu系統cuda9.0支持17.04和16.04版本下載安裝,但實際上,有點類似於word一樣(高版本word能打開低版本的word文件)18.04版本的系統,能夠安裝16.04版本對應的CUDA。這裏我們選擇16.04版本,選擇安裝類型爲runfile(local),可發現有一個基礎安裝包,和四個補丁包,都下載下來,也可以就下一個基礎安裝包。

4.2 降低GCC版本

在安裝CUDA前,由於CUDA 9.0僅支持GCC 6.0及以下版本,而Ubuntu 18.04預裝GCC版本爲7.3,若gcc高於6.0版本,強行編譯則會出現error: #error – unsupported GNU version! gcc versions later than 6 are not supported!錯誤。故手動對gcc進行降級,這裏安裝gcc6版本,gcc-6和g++ -6,大家可以自行決定版本,只要比錯誤中提到的支持上限小就沒問題:

sudo apt-get install gcc-6
sudo apt-get install g++-6

通過命令替換掉之前的版本:

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 50
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++ -6 50

最後通過gcc --version命令再次查看版本是否修改成功,如圖所示,gcc安裝成功。
在這裏插入圖片描述

4.3 安裝CUDA

在我們安裝runfile之前,我們需要安裝一些依賴關係,否則安裝時出現類似Missing recommended library: libGLU.so這樣的警告。
在這裏插入圖片描述
運行下面的命令安裝缺少的依賴關係。

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

安裝後,找到剛纔下載的run文件,運行

sudo sh cuda_9.0.176_384.81_linux.run

注意:在安裝過程中會提示是否需要安裝顯卡驅動(Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 384.81?),由於之前已經安裝過顯卡驅動程序,在這裏要選擇n,其他的選擇y或者回車鍵進行安裝,正確安裝結果如下圖所示:
在這裏插入圖片描述

可以選擇繼續安裝下載的四個補丁文件,也可以不安裝,安裝命令如下:

sudo sh cuda_9.0.176.1_linux.run.1_linux-run
sudo sh cuda_9.0.176.2_linux.run.2_linux-run
sudo sh cuda_9.0.176.3_linux.run
sudo sh cuda_9.0.176.4_linux.run

安裝成功後,結果如下圖
在這裏插入圖片描述

4.4 配置CUDA環境變量

完成以上的步驟以後一定要進行環境的配置。按步驟輸入一下命令:

sudo gedit ~/.bashrc

會彈出一個可寫的配置文件,在末尾把以下配置寫入並保存。

export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

最後執行

source ~/.bashrc

有時候也需要重啓。最好重啓一下。

4.5 測試

在安裝cuda的時候也相應的安裝了cuda的一些例子,可以進入例子的文件夾然後使用make命令執行。
從網上找了兩個例子,例一:

# 第一步,進入例子文件
cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery
# 第二步,執行make命令
sudo make
# 第三步
./deviceQuery

如果結果有GPU的信息,顯示Result=pass,則測試通過,說明安裝成功。
在這裏插入圖片描述

5. 安裝cuDNN

5.1 下載cuDNN

安裝好CUDA9.0後,接下來就安裝cuDNN,進入cuDNN下載頁面,地址:https://developer.nvidia.com/rdp/cudnn-archive
選擇Download cuDNN v7.1.4 (May 16, 2018), for CUDA 9.0 -> cuDNN v7.1.4 Library for Linux下載。下載需要註冊一個NIVDIA賬號。
在這裏插入圖片描述

5.2 安裝cuDNN

此處有兩種方法可以安裝,分別介紹一下:

方法1:

將cuDNN v7.1.4 Library for Linux鏈接的文件下載好後,進入下載的文件夾,解壓文件,複製cuDNN內容到CUDA相關文件夾內,具體操作命令如下:

tar -zxvf cudnn-9.0-linux-x64-v7.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda-9.0/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-9.0/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda-9.0/lib64/libcudnn*

通過以上步驟就可以安裝好cuDNN了。

方法2:

下載如圖所示的三個文件,cuDNN v7.1.4 Runtime Library for Ubuntu16.04 (Deb)、cuDNN v7.1.4 Developer Library for Ubuntu16.04 (Deb)和cuDNN v7.1.4 Code Samples and User Guide for Ubuntu16.04 (Deb)
安裝命令如下:

sudo dpkg -i libcudnn7_7.1.4.18-1_cuda9.0_amd64.deb
sudo dpkg -i libcudnn7-dev_7.1.4.18-1_cuda9.0_amd64.deb
sudo dpkg -i libcudnn7-doc_7.1.4.18-1+cuda9.0_amd64.deb

以上方法選擇其中一個安裝就行。

5.3 測試

以下測試方法僅限於用上述方法2的安裝過程,上述方法1雖然可以安裝cudnn,但是卻不知道怎麼用官方樣例代碼測試cudnn是否安裝成功(感覺可以通過訓練的時間對比一下分析出是否安裝成功),cuDNN安裝成功後會在CUDA加速的基礎上再加速1.5倍左右。

安裝完以後需要進行測試是否安裝成功,測試的過程如下圖所示:
在這裏插入圖片描述
運行以下命令

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

最終如果有提示信息:“Test passed! ”,則說明安裝成功,如圖所示:
在這裏插入圖片描述

6. 安裝深度學習框架

6.1 安裝TensorFlow

TensorFlow官方文檔會指定每一個TensorFlow GPU版本所依賴的python、cuDNN、GPU顯卡驅動和CUDA的版本。在安裝的時候一定注意版本的對應關係,若Python、cuDNN、GPU顯卡驅動和CUDA的版本有低於TensorFlow GPU 要求的版本,在安裝和使用過程中會出現錯誤。下表是TensorFlow GPU在Linux系統下版本對應表。

TensorFlow GPU python cuDNN CUDA
1.12 2.7、3.3-3.6 >=7.2 9
1.11 2.7、3.3-3.6 >=7.2 9
1.10 2.7、3.3-3.6 7 9
1.9.0 2.7、3.3-3.6 7 9
1.8.0 2.7、3.3-3.6 7 9
1.7.0 2.7、3.3-3.6 7 9
1.6.0 2.7、3.3-3.6 7 9
1.5.0 2.7、3.3-3.6 7 9
1.4.0 2.7、3.3-3.6 6 9
1.3.0 2.7、3.3-3.6 6 9
1.2.0 2.7、3.3-3.6 5.1 9
1.1.0 2.7、3.3-3.6 5.1 9
1.0.0 2.7、3.3-3.6 5.1 9

這裏我們安裝的是1.12版本,終端直接用pip3 install tensorflow-gpu命令安裝即可。

6.2 測試TensorFlow框架

寫一個hello, world,測試一下安裝的框架是否可以正常使用

import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))

運行成功後如圖所示:
在這裏插入圖片描述
如果運行發現錯誤提示:ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory

錯誤原因及解決方法如下:
原因1:cuda9.0以及cudnn7未能安裝或正確安裝。
解決方案:安裝cuda及對應cudnn,已安裝情況下檢查路徑usr/local/cuda-9.0/lib64下是否有 libcublas.so.9.0文件

原因2:tensorflow版本與cuda不對應。
解決方案:檢查版本對應,並適當升級。

原因3:路徑未加入環境
解決方案:sudo gedit ~/.bashrc 在文檔尾部加上
export LD_LIBRARY_PATH=LD_LIBRARY_PATH:/usr/local/cuda-9.0/lib64/
如果之前添加過但寫法與此不同,仍然報錯,請按此格式添加,改成上邊的寫法就不報錯了。
添加完路徑之後別忘了執行source ~/.bashrc

6.3 安裝PyTorch

通過查閱pytorch官網,根據我們的系統環境,得知安裝方法如下圖所示
在這裏插入圖片描述
如果你是其他配置,可以進官網進行查看如何安裝,這裏我們執行以下命令安裝PyTorch,

pip3 install torch torchvision

6.4 測試PyTorch框架

安裝好後,我們寫個程序測試一下是否安裝成功

import torch as t
x = t.rand(5,3)
y = t.rand(5,3)
if t.cuda.is_available():
    x = x.cuda()
    y = y.cuda()
    print(x+y)

運行後如果有下圖中的輸出,則代表成功調用GPU加速並且pytorch安裝成功,否則沒有成功調用。
在這裏插入圖片描述

6.5 安裝並配置PyCharm

此過程可以參考我之前寫的一篇博文:https://blog.csdn.net/IT_xiao_bai/article/details/79171703
在這裏就不贅述了。

總結

至此,深度學習的環境配置基本完成,接下來就開始進行深度學習之旅吧~

ps:歡迎大家轉載,轉載請註明出處https://blog.csdn.net/IT_xiao_bai/article/details/84782311

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