Ubuntu 16.04 配置 PyTorch(GeForce GTX 1080Ti + CUDA 9.0 + Python 3.7) 全套教程

1. 前期準備工做

下載 Anaconda3,PyCharm,NVIDIA GeForce GTX 1080Ti 顯卡驅動,CUDA,cuDNN,Pytorch 安裝包,保存到同一個目錄(如「下載」目錄)html

1.1 Anaconda3:

https://www.anaconda.com/distribution/
選擇 Linux Python 3.7 version 64-Bit (x86) Installer,以下圖:
在這裏插入圖片描述python

1.2 PyCharm:

https://www.jetbrains.com/pycharm/download/#section=linux
選擇 Community 版,以下圖:
在這裏插入圖片描述linux

1.3 NVIDIA GeForce GTX 1080Ti 顯卡驅動

https://www.geforce.cn/drivers
按如下條件篩選:
在這裏插入圖片描述
通常選列表第一個:
在這裏插入圖片描述
點擊下載按鈕:
在這裏插入圖片描述git

1.4 CUDA

https://developer.nvidia.com/cuda-90-download-archive?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1604&target_type=runfilelocal
按如下條篩選並下載:
在這裏插入圖片描述github

1.5 cuDNN

https://developer.nvidia.com/rdp/cuDNN-archive
下載這個要向註冊一個NVIDIA 開發者帳號,微信掃碼就行。
按如下條件篩選並下載:
在這裏插入圖片描述web

1.6 PyTorch

兩個 whl 包:vim

https://download.pytorch.org/whl/cu92/torch-1.3.0%2Bcu92-cp37-cp37m-linux_x86_64.whl
api

https://download.pytorch.org/whl/cu92/torchvision-0.4.1%2Bcu92-cp37-cp37m-linux_x86_64.whl
bash

若是要安裝其餘版本,自行到 https://download.pytorch.org/whl/torch_stable.html 下載。微信

2. 安裝NVIDIA GeForce GTX 1080Ti 顯卡驅動(涉及到系統底層修改,請嚴格按照教程操做,不然後果自負)

2.1 卸載舊驅動(保險起見)

# 先切換到你下載各個安裝包的目錄,這裏示範的是「下載」目錄
cd  ~/下載/
sudo apt-get remove --purge nvidia*
./NVIDIA-Linux-x86_64-430.50.run --uninstall

2.2 安裝依賴

# 先在軟件更新器裏面換源再安裝
sudo apt-get update 
sudo apt-get install dkms build-essential linux-headers-generic
sudo apt-get install gcc-multilib xorg-dev
sudo apt-get install freeglut3-dev libx11-dev libxmu-dev install libxi-dev  libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

2.3 禁用noueau(系統自帶)驅動

# 打開文件 blacklist-nouveau.conf
sudo gedit /etc/modprobe.d/blacklist-nouveau.conf # 圖形界面下
sudo vi /etc/modprobe.d/blacklist-nouveau.conf # TTY(終端)下,vim 使用方法自行百度
# 追加如下內容:
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off

2.4 禁用 nouveau 內核模塊

echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf
sudo update-initramfs -u # 更新內核
reboot #重啓

2.5 進入 BIOS 關閉 Secure Boot, Fast Boot (具體方法百度)

因爲這次配置的機器默認已關閉這兩個選項,跳過。

2.6 進入TTY關閉圖形界面

重啓後,先不要直接登陸,必須先進入TTY關閉圖形界面裝好顯卡驅動後才能正常進入系統。
CTRL + ALT + F1,打開TTY,輸入用戶名,密碼,關閉圖形界面。

sudo service lightdm stop
sudo service systemctl stop

2.7 運行.run文件安裝驅動

# 先切換到你下載各個安裝包的目錄,這裏示範的是「下載」目錄
cd  ~/下載/
ls # 獲取驅動安裝包名稱
# 添加權限,文件名自行更改
chmod a+x NVIDIA-Linux-x86_64-430.50.run
# 執行安裝包,文件名自行更改,後面的參數不可缺乏或錯誤!
sudo ./NVIDIA-Linux-x86_64-430.50.run --dkms --no-opengl-files

注意執行文件後面的參數 –dkms --no-opengl-files ,必定要輸對!
安裝包執行後,會提示 pre-script failed ,不用理會,繼續安裝,安裝過程當中:
dkms 選 no
32位兼容 選 yes
x-org 選 no

2.8 驗證安裝

nvidia-smi # 若列出GPU的信息列表,表示驅動安裝成功

2.9 重啓桌面

sudo service lightdm start # 若沒自動跳轉,CTRL+ALT+F7
# 輸入密碼,登陸系統
nvidia-settings # 若彈出 NVIDIA 設置對話框,亦表示驅動安裝成功

3. 安裝Anaconda3

# 先切換到你下載各個安裝包的目錄,這裏示範的是「下載」目錄
cd  ~/下載/
sudo sh ./Anaconda3-2019.10-Linux-x86_64.sh # 文件名自行更改

輸入 yes ,執行安裝,安裝時各個目錄默認便可。

4. 安裝Pycharm

4.1 提取安裝文件

在文件管理器 下載 裏面找到安裝文件,如 pycharm-community-2019.2.3.tar.gz,右鍵提取。

4.2 執行安裝

打開提取出的文件夾(如 pycharm-community-2019.2.3 ),進入其中的 bin 文件夾,右鍵 打開終端 ,執行如下命令:

sudo sh ./pycharm.sh

而後一直下一步就行,建立快捷方式選

4.3 更換解釋器

打開安裝好的 Pycharm ,依次進入 File -> Settings -> Project *** -> Project Interpreter , 右邊小齒輪,Add -> System Interpreter ,右邊三個點,選擇 Anaconda3 目錄下的 python 解釋器( ~/anaconda3/bin/python/python)。

5. 安裝CUDA

5.1 執行安裝程序

# 先切換到你下載各個安裝包的目錄,這裏示範的是「下載」目錄
cd  ~/下載/
sudo sh ./cuda_9.0.176_384.81_linux.run # 文件名自行更改

提示是否安裝顯卡驅動時,選 no (由於以前已經安裝了 NVIDIA 顯卡驅動,因此這裏就不用重複安裝,不要問爲何要提早安裝好顯卡驅動,問就是必需要這樣,再問錘人)。

5.2 添加環境變量

# 打開配置文件
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}}
# 保存,退出

6. 安裝 cuDNN

# 先切換到你下載各個安裝包的目錄,這裏示範的是「下載」目錄
cd  ~/下載/
# 解包
sudo dpkg -i libcudnn7_7.6.3.30-1+cuda9.0_amd64.deb # 文件名自行更改
# 安裝
sudo apt install libcuDNN7 # 包名自行更改

7. 安裝 PyTorch

# 先切換到你下載各個安裝包的目錄,這裏示範的是「下載」目錄
cd  ~/下載/
# 安裝輪子(安裝 whl 的工具)
pip install wheel --user
# 安裝 PyTorch 的兩個 whl 包,包名自行更改
pip install torch-1.3.0+cu92-cp37-cp37m-linux_x86_64.whl
pip install torchvision-0.4.1+cu92-cp37-cp37m-linux_x86_64.whl

8. 安裝 mmdetection

8.1 安裝 mmcv (依賴庫)

pip install mmcv

8.2 安裝 mmdetection

解壓 包文件 mmdetection-master.zip ,在解壓後的文件夾下打開終端,執行如下命令:

python setup.py develop

而後將解壓後獲得的 mmdet 文件夾複製到Python包文件夾(Python主目錄/Lib/site-packages/)下。

8.3 添加 Pycharm 環境變量

打開 Pycharm ,Run -> Edit configurations -> Environment variables,添加如下內容:

LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64/

9. 測試配置是否成功

下載預訓練模型(本例中爲 faster_rcnn_r50_fpn_1x_20181010-3d1b3351.pth ):
https://github.com/open-mmlab/mmdetection/blob/master/MODEL_ZOO.md
在 Pycharm 中新建一個項目文件夾和一個測試py文件,輸入如下內容:

# coding=utf-8
 
from mmdet.apis import init_detector
from mmdet.apis import inference_detector
from mmdet.apis import show_result
 
# 模型配置文件
config_file = '../../configs/faster_rcnn_r50_fpn_1x.py'
 
# 預訓練模型文件
checkpoint_file = '../../checkpoints/faster_rcnn_r50_fpn_1x_20181010-3d1b3351.pth'
 
# 經過模型配置文件與預訓練文件構建模型
model = init_detector(config_file, checkpoint_file, device='cuda:0')
 
# 測試單張圖片並進行展現
img = 'test1.jpg'
result = inference_detector(model, img)
show_result(img, result, model.CLASSES)
 
# 測試一個圖像列表並保存結果圖像
imgs = ['test1.jpg', 'test2.jpg', 'test3.jpg']
for i, result in enumerate(inference_detector(model, imgs)):
    show_result(imgs[i], result, model.CLASSES, out_file='result_{}.jpg'.format(i))

運行py文件,執行成功則表示配置成功。 如在配置過程當中有任何疑問,歡迎留言! 2019.11.01 23:49 Hafowi