Ubuntu 18.04/20.04 CV环境配置(中):Tensorrt + Pytorch安装配置

Posted Techblog of HaoWANG

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ubuntu 18.04/20.04 CV环境配置(中):Tensorrt + Pytorch安装配置相关的知识,希望对你有一定的参考价值。

Ubuntu 18.04/20.04 CV环境配置(上):CUDA11.1 + cudnn安装配置_Techblog of HaoWANG的博客-CSDN博客Ubuntu18.04 20.04 NVIDIA CUDA 环境配置与cudnn Tensorrt等配置与使用https://blog.csdn.net/hhaowang/article/details/125803582?spm=1001.2014.3001.5501

目录

TensorRT的好处

1. 版本选择

1.1 安装CUDA和cudnn

 1.2 安装Tensorrt

2. 下载文件

3.1 Tensorrt 编译

3.2 Pytorch安装

4. 环境设置

5. 卸载

6. 安装TRT Pose

7. 安装Realsense -ROS


什么是Tensorrt?参考知乎解释

什么是TensorRT - 知乎Tensor是一个有助于在NVIDIA图形处理单元(GPU)上高性能推理c++库。它旨在与TesnsorFlow、Caffe、Pytorch以及MXNet等训练框架以互补的方式进行工作,专门致力于在GPU上快速有效地进行网络推理。 如今现有的一些训…https://zhuanlan.zhihu.com/p/356072366

 

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个用于衡量软件的关键因素:

  1. 吞吐量
  2. 效率
  3. 延迟性
  4. 准确性
  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

Start Locally | 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

ubuntu18.04+安装ros-melodic+安装realsense-ros包_Clover Fu的博客-CSDN博客自己在安装的时候参考了很多博客,但许多的方法很杂乱最后还失败了,这里综合下自己尝试成功且比较方便的方法,参考链接会在下文列出。安装ros-melodic参考:https://www.guyuehome.com/10082注:不同版本的ubuntu对应不同的ros版本,ubuntu18.04对应ros-melodic1、添加ROS软件源(TX2使用自带源即可,该步可省去)sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu https://blog.csdn.net/CloverFu/article/details/120056130

以上是关于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安装配置

Ubuntu 18.04/20.04 CV环境配置(上):CUDA11.1 + cudnn安装配置

Ubuntu 18.04/20.04 CV环境配置(上):CUDA11.1 + cudnn安装配置