Ubuntu 18.04/20.04 CV环境配置(中):Tensorrt + Pytorch安装配置
Posted Techblog of HaoWANG
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ubuntu 18.04/20.04 CV环境配置(中):Tensorrt + Pytorch安装配置相关的知识,希望对你有一定的参考价值。
目录
什么是Tensorrt?参考知乎解释
Tensor是一个有助于在NVIDIA图形处理单元(GPU)上高性能推理c++库。它旨在与TesnsorFlow、Caffe、Pytorch以及MXNet等训练框架以互补的方式进行工作,专门致力于在GPU上快速有效地进行网络推理。
如今现有的一些训练框架(例如TensorFlow)已经集成了TensorRT,因此可以将其用于加速框架中的推理。另外,TensorRT可以作为用户应用程序中的库,它包括用于从Caffe,ONNX或TensorFlow导入现有模型的解析器,以及用于以编程方式(C++或Python API)构建模型。
TensorRT的好处
在训练了神经网络之后,TensorRT可以对网络进行压缩、优化以及运行时部署,并且没有框架的开销。TensorRT通过combines layers,kernel优化选择,以及根据指定的精度执行归一化和转换成最优的matrix math方法,改善网络的延迟、吞吐量以及效率。
对于深度学习推理中,有5个用于衡量软件的关键因素:
- 吞吐量
- 效率
- 延迟性
- 准确性
- 内存使用情况
TensorRT通过结合抽象出特定硬件细节的高级API和优化推理的实现来解决这些问题,以实现高吞吐量、低延迟和低设备内存占用。
1. 版本选择
1.1 安装CUDA和cudnn
首先,按照上述历程安装配置CUDA11.1和cudnn8.0.4
1.2 安装Tensorrt
下载TENSORRT 注意CUDA和CUDNN的版本对应版本,
NVIDIA TensorRT 7.x Download | NVIDIA Developerhttps://developer.nvidia.com/nvidia-tensorrt-7x-downloadNVIDIA Developer Program Membership Required | NVIDIA Developerhttps://developer.nvidia.com/nvidia-tensorrt-7x-downloadSupport Matrix :: NVIDIA Deep Learning TensorRT Documentationhttps://docs.nvidia.com/deeplearning/tensorrt/support-matrix/index.html#software-version-platform
注意这里选择deb包,因为采用这种方式安装会自动的安装cudnn, nvinfer, nvinfer-plugin,等必须配置
。
2. 下载文件
Tensorrt下载完成后执行如下命令
wget https://developer.nvidia.com/compute/machine-learning/tensorrt/secure/7.2.2/tars/TensorRT-7.2.2.3.Ubuntu-18.04.x86_64-gnu.cuda-11.1.cudnn8.0.tar.gz
version="7.x.x.x"
os="<os>"
arch=$(uname -m)
cuda="cuda-x.x"
cudnn="cudnn8.x"
tar xzvf TensorRT-$version.$os.$arch-gnu.$cuda.$cudnn.tar.gz
3. 编译安装
3.1 Tensorrt 编译
进入Tensor解压目录,依次pip安装即可。
注意: ros python版本为python2.7 需要安装 py2 & py3,否则无法使用ROS python
cd TensorRT-$version/python
pip install tensorrt-*-cp3x-none-linux_x86_64.whl
cd TensorRT-$version/uff
pip install uff-0.6.9-py2.py3-none-any.whl
cd TensorRT-$version/graphsurgeon
pip install graphsurgeon-0.4.5-py2.py3-none-any.whl
cd TensorRT-$version/onnx_graphsurgeon
pip install onnx_graphsurgeon-0.2.6-py2.py3-none-any.whl
pip install 'pycuda>=2019.1.1'
接着进入tensorRT下的uff文件夹安装whl(tensorflow会用到)
pip install uff-0.6.9-py2.py3-none-any.whl
至此,Ubuntu与TensorRT安装成功!
3.2 Pytorch安装
Pytorch&torchversion采坑系列
Torch的目标在保证使用的方式非常简单的基础上最大化地保证算法的灵活性和速度。Torch的核心是流行的神经网络和简单易用的优化库,使用Torch能在实现复杂的神经网络拓扑结构的时候保持最大的灵活性,同时可以使用并行的方式对CPU和GPU进行更有效率的操作。在LuaJIT/C/CUDA等基础之上,Torch的主要特性如下:
- 强大的N维数组操作的支持
- 提供很多对于索引/切片等的常用操作
- 常见线性代数计算的支持
- 神经网络和基于能量的模型
- 支持GPU计算
我们说的pytorch在当前来说就是torch,如果你直接安装pytorch是安装不了的,根据我采坑情况来说,你需要去pytorch官网安装,禁止cmd 内pip 安装。
Pytorch官网:PyTorch
安装版本需要与CUDA、CUDNN对应,选择LTS低版本1.8.2 PIP安装、Python版本、CUDA11.1(CUDNN8.0.X)
pip3 install torch==1.8.2 torchvision==0.9.2 torchaudio==0.8.2 --extra-index-url https://download.pytorch.org/whl/lts/1.8/cu111
4. 环境设置
# 安装环境变量
gedit ~/.bashrc
加入如下环境
# cuda
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
# cudnn init
export CUDNN_HOME=/usr/local/cuda
# export LD_LIBRARY_PATH=$CUDNN_HOME/lib64:$LD_LIBRARY_PATH
export CPLUS_INCLUDE_PATH=$CUDNN_HOME/include:$CPLUS_INCLUDE_PATH
# tensorrt
export TENSORRT_HOME=/home/leo/TensorRT-7.2.2.3
export PATH=$TENSORRT_HOME/bin:$PATH
export LD_LIBRARY_PATH=$TENSORRT_HOME/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$TENSORRT_HOME/targets/x86_64-linux-gnu/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TENSORRT_HOME/lib
export CPLUS_INCLUDE_PATH=$TENSORRT_HOME/include:$CPLUS_INCLUDE_PATH
export CPLUS_INCLUDE_PATH=$TENSORRT_HOME/targets/x86_64-linux-gnu/include:$CPLUS_INCLUDE_PATH
激活环境
source ~/.bashrc
5. 卸载
# 非第一次安装的注意使用
dpkg -l|grep cuda
dpkg -l|grep nvidia
dpkg -l|grep tensorrt检查残留
同时检查/usr/loacal/目录下是否有cuda开头的残留
# 卸载cuda
sudo apt-get --purge remove "*cublas*" "*cufft*" "*curand*" \\
"*cusolver*" "*cusparse*" "*npp*" "*nvjpeg*" "cuda*" "nsight*"
# 卸载驱动
sudo apt-get --purge remove "*nvidia*"
# 卸载依赖
sudo apt-get autoremove
# 查看/usr/local下是否还有cuda开头的文件夹,还有的话
cd /usr/local/cuda/bin
sudo ./cuda-uninstaller
全选,done
使用这样的命令删除/usr/local下的残留文件夹
sudo rm -r cuda*
# 清理环境变量
gedit ~/.bashrc
清理如下环境
# cuda
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
# cudnn init
export CUDNN_HOME=/usr/local/cuda
# export LD_LIBRARY_PATH=$CUDNN_HOME/lib64:$LD_LIBRARY_PATH
export CPLUS_INCLUDE_PATH=$CUDNN_HOME/include:$CPLUS_INCLUDE_PATH
# tensorrt
export TENSORRT_HOME=/home/leo/TensorRT-7.2.2.3
export PATH=$TENSORRT_HOME/bin:$PATH
export LD_LIBRARY_PATH=$TENSORRT_HOME/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$TENSORRT_HOME/targets/x86_64-linux-gnu/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TENSORRT_HOME/lib
export CPLUS_INCLUDE_PATH=$TENSORRT_HOME/include:$CPLUS_INCLUDE_PATH
export CPLUS_INCLUDE_PATH=$TENSORRT_HOME/targets/x86_64-linux-gnu/include:$CPLUS_INCLUDE_PATH
source ~/.bashrc
# 激活环境变量
记得卸载tensorrt中安装的pip包和pycuda
# 重新安装前记得重启
sudo reboot
6. 安装TRT Pose
https://github.com/NVIDIA-AI-IOT/trt_posehttps://github.com/NVIDIA-AI-IOT/trt_pose
git clone https://github.com/NVIDIA-AI-IOT/torch2trt
cd torch2trt
python setup.py install
# 加上pulgin会失败
pip install tqdm cython pycocotools
sudo apt-get install python3-matplotlib
git clone https://github.com/NVIDIA-AI-IOT/trt_pose
cd trt_pose
python setup.py install
7. 安装Realsense -ROS
以上是关于Ubuntu 18.04/20.04 CV环境配置(中):Tensorrt + Pytorch安装配置的主要内容,如果未能解决你的问题,请参考以下文章
Ubuntu 18.04/20.04 CV环境配置(中):Tensorrt + Pytorch安装配置
Ubuntu 18.04/20.04 CV环境配置(中):Tensorrt + Pytorch安装配置
Ubuntu 18.04/20.04 CV环境配置(上):CUDA11.1 + cudnn安装配置
Ubuntu 18.04/20.04 CV环境配置(上):CUDA11.1 + cudnn安装配置