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