本文介绍在ubuntu20.04系统上安装pytorch,搭建深度学习开发环境的主要步骤。
文章目录
一、gcc设置
- 为了使ubuntu20.04兼容cuda10.2以及对应的cudnn,首先安装gcc7,g++7
sudo apt-get install gcc-7 g++-7
- 查看gcc和g++版本
ls /usr/bin/gcc*
显示有7和9两个版本
ls /usr/bin/g++*
3.设置默认编译器(使用update-alternatives进行版本切换)
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 100
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 50
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 9
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 1
4.查看此时的gcc默认版本
sudo update-alternatives --config gcc
sudo update-alternatives -- config g++
二、安装cuda
-
官网下载18.04对应的cuda10.2 runfile(local),链接:
https://developer.nvidia.com/cuda-toolkit-archive -
在文件所在文件夹下输入命令:
sudo sh cuda_10.2.89_440.33.01_linux.run
3. 依次点击continue和accept
4. 按回车取消Driver项的安装(使用系统自带的硬件驱动,对于cuda10.2而言,驱动版本大于440.00即可),然后回车选择Install
5. 添加环境变量
gedit ~/.bashrc打开文件,在文件结尾添加如下语句:
export PATH=/usr/local/cuda-10.2/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64${LD-LIBRARY-PATH:+:${LD_LIBRARY_PATH}}
6. 保存、更新环境变量
source ~/.bashrc
- 输入nvcc -V查看版本号
cuda安装完成(注:使用nvidia-smi查看的硬件驱动版本查看的版本号(如cuda11.0)大于该运行时版本号时属正常情况)
三、安装cudnn
手动编译C++版本opencv且需要opencv_dnn_cuda,或许要使用tensorrt时必须安装(注意版本对应关系如tensorrt8.2.3要求cudnn8.2.1),仅使用pytorch在python环境下开发时可跳过也可视具体情况安装
-
https://developer.nvidia.com/rdp/cudnn-download下载对应版本的cudnn
runtime developer 和samples -
在对应目录下依次输入
sudo dpkg -i libcudnn8_x.x.x-1+cudax.x_amd64.deb
sudo dpkg -i libcudnn8-dev_8.x.x.x-1+cudax.x_amd64.deb
sudo dpkg -i libcudnn8-samples_8.x.x.x-1+cudax.x_amd64.deb
- 测试
拷贝例程到用户目录
cp -r /usr/src/cudnn_samples_v8/ $HOME
- 转到minist例程
cd $HOME/cudnn_samples_v8/mnistCUDNN
- 编译例程
sudo make clean && make
如果出现fatal error: FreeImage.h 没有那个文件或目录
则需要执行:
sudo apt-get install libfreeimage3 libfreeimage-dev
- 运行例程
./mnistCUDNN
- 如果cudnn被恰当的安装,将输出打印消息:
Test passed!
四、ssh安装和自启动(需要远程调试时可安装)
sudo apt-get install openssh-server
查看状态
sudo service ssh status
停止服务
sudo service ssh stop
启动服务
sduo service ssh start
设置开机自启动
sudo systemctl enable ssh
reboot
五、Anaconda安装
- 从
https://www.anaconda.com/products/individual
选择Linux 64-Bit(x86) installer下载.sh安装包
2. 在文件所在目录下输入命令安装
3. 配置环境变量
gedit ~/.bashrc打开文件,检查末尾是否有如下语句:
==>如果没有:
文件最后一行添加:
export PATH="/home/username/anaconda3/bin:$PATH"
保存关闭
- 更新环境变量
source ~/.bashrc
命令行最开始出现(base)标识
六、安装pytorch1.7
-
为了兼容更多的第三方包,conda中新建python3.7环境
conda activate py37 -
添加conda国内源
注意根据实际情况调整后缀linux-64
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/linux-64
conda config --set show_channel_urls yes
第三方源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
查看源
conda config --show-sources
- conda安装pyTorch1.7
访问:
https://pytorch.org/get-started/locally/
激活py37环境:conda activate py37
运行网页给出的命令,去除最后的-c pytorch以使用国内源,否则安装速度较慢
4. 验证
py37环境下,输入python进入python环境
运行:
import torch
x = torch.rand(5, 3)
print(x)
输出类似:
检查cuda是否可用
import torch
torch.cuda.is_available()
print(torch.version.cuda)
torch.rand(3, 3).cuda()
七、安装pycharm
-
官网下载open-source压缩包
https://www.jetbrains.com/pycharm/download/#section=linux -
解压缩进入bin目录,运行pycharm.sh
bash pycharm.sh
3. 根据弹窗提示完成安装
4. 创建快捷方式
cd /usr/share/applications
sudo gedit pycharm.desktop
添加以下内容:
[Desktop Entry]
Version=1.0
Type=Application
Name=Pycharm
Icon=/home/elbert/software/pycharm/pycharm-community-2020.2/bin/pycharm.png
Exec=sh /home/elbert/software/pycharm/pycharm-community-2020.2/bin/pycharm.sh
MimeType=application/x-py;
Name[en_US]=pycharm
注意,这里Icon和Exec的绝对路径,从bin目录中文件的属性里查看
win+A查看所有应用,找到对应的图标,然后右键添加到桌面收藏夹
八、pip添加国内源
后续开发过程中需要使用pip安装扩展包,添加国内源可以加快包的下载速度
常用国内源
• 阿里云
https://mirrors.aliyun.com/pypi/simple/
• 中国科技大学
https://pypi.mirrors.ustc.edu.cn/simple/
• 豆瓣(douban)
http://pypi.douban.com/simple/
• 清华大学
https://pypi.tuna.tsinghua.edu.cn/simple/
• 中国科学技术大学
http://pypi.mirrors.ustc.edu.cn/simple
检查是否有~/.pip/pip.conf,若无
mkdir ~/.pip
cd ~/.pip
touch pip.conf
sudo gedit pip.conf
添加一个国内源
[global]
trusted-host = pypi.tuna.tsinghua.edu.cn
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
安装python版opencv(with contrib)示例:
pip install opencv-contrib-python
九、安装Tensorrt用于加速推理或部署
按需安装,这里需要注意和cuda还有cudnn的版本对应关系(cuda10.2版本需要下载补丁patch1和patch2都装一下,如果在后续测试中仍然报错,建议升级cuda11.x,cuda10.2似乎对新版tensorrt(新版本对算子等各方面支持好点)的支持不太好,无tensorrt需求则忽略此条!
)
下载链接:
https://developer.nvidia.com/nvidia-tensorrt-8x-download
从这里下载18.04对应的tar包 (deb包要求cuda也是deb安装)
解压压缩包
tar -xzvf TensorRT-8.2.3.0.Linux.x86_64-gnu.cuda-10.2.cudnn8.2.tar.gz
转到解压文件夹并列出文件
cd TensorRT-8.2.3.0.Linux.x86_64-gnu.cuda-10.2.cudnn8.2/TensorRT-8.2.3.0
ls
注意到有以下子文件夹
打开配置文件gedit ~/.bashrc
将tensorrt库添加到环境变量,另外将tensorrt的更目录加入环境变量,方便后面调试例程
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$YOUR_ROOT_DIR/TensorRT-8.2.3.0.Linux.x86_64-gnu.cuda-10.2.cudnn8.2/TensorRT-8.2.3.0/lib
保存并关闭文件,刷新环境变量
source ~/.bashrc
安装python的TensorRT wheel文件
cd $YOUR_ROOT_DIR/TensorRT-8.2.3.0.Linux.x86_64-gnu.cuda-10.2.cudnn8.2/TensorRT-8.2.3.0/python
ls可以查看到文件内所有支持的不同的python版本
这里安装python3.8版本
python3 -m pip install tensorrt-8.2.3.0-cp38-none-linux_x86_64.whl
安装python uff的wheel文件,转到uff目录执行:
python3 -m pip install uff-0.6.9-py2.py3-none-any.whl
安装python graphsurgeon 的wheel文件,转到graphsurgeon目录执行:
python3 -m pip install graphsurgeon-0.4.5-py2.py3-none-any.whl
安装python onnx-graphsurgeon的wheel文件,转到onnx-graphsurgeon目录执行:
python3 -m pip install onnx_graphsurgeon-0.3.12-py2.py3-none-any.whl
验证是否安装成功
测试demo
cd samples/python/network_api_pytorch_mnist
python sample.py