tensorRt部署原理

详解tensorRT的高性能部署方案,并附有强大的yolov5、yolox、retinaface、arcface、scrfd、deepsort、alphapose的高性能实现,低耦合,哪来即可用,集成到项目中 repo地址:https://github.com/shouxieai/tensorRT_cpp YoloX-m@640x640 fp16@2080Ti性能:2.54ms / image, 每秒393.54帧

第1章 tensorRT介绍

1.1 tensorRt是什么

答:是:nvdia发布的dnn推理加速引擎。

tensorRT:nvdia发布的dnn推理加速引擎,是针对nvdia系列硬件进行优化加速、实现最大程度的利用GPU资源,提升推理性能。

1.2 tensorrt 方案介绍

  Tensorrt构建模型的形式,即需要告知它你模型的架构和权重。那tensorRT提供基于C++接口和Python 接口的构建方案。那tensorrt各个版本有接口说明。通过api 你告诉它你模型需要的参数,结构,权重。

  Tensorrt 提供的基础api 接口让你实现加速推理。为了方便起见,他们也提供更高级的使用方式,就是说你只需要把你的模型转换成onnx,它就可以直接转换成tensorrt的API.就是直接调用api,实现整个引擎的编译。

下面是3种常见路径。

 

Pytorch 到onnx 是pytorch 维护,也就是有新算子出来由官方维护。 Onnx到engine是 nvdia 来维护,即libnvonnxparser.so不断更新。

那编译也是很简单,就一句话。

 

 

 第2章:使用TensorRT 的深度学习开发流程

 

首先需要先训练深度学习网络框架,训练后会生成一个神经网络模型,然后可以指定 Batch-Size 和Precision 使用 TensorRT 进行优化,是会得到一个优化后的推理引擎,将其序列化到磁盘,在使用时先进行反序列化,之后进行推理验证

第3章 tensorrt加速优化原理

TensorRT能够加速的原因主要有两点,一方面是支持INT8和FP16的计算;另一方面是对网络结构进行了重构和优化

3.1 TensorRT支持INT8和FP16的计算

深度学习网络在训练时,通常使用 32 位或 16 位数据。TensorRT支持kFLOAT(float32)、kHALF(float16)、kINT8(int8)三种精度的计算,在使用时通过低精度进行网络推理,达到加速的目的。

3.2 TensorRT对网络结构进行了重构和优化

TensorRT对网络结构进行重构,把一些能合并的运算合并在一起,根据GPU的特性做了优化。具体表现在下面4个方面。

1 tensorRT通过解析网络模型将网络中无用的输出层消除以减小计算。

2对于网络结构的垂直整合,即将目前主流神经网络的conv、BN、Relu三个层融合为了一个层,例如将下图1所示的常见的Inception结构重构为图2所示的网络结构。

 

  1. 对网络的水平组合,水平组合是指将输入为相同张量和执行相同操作的层融合一起,如图2向图3的转化。

 

 4去掉 concat 层,将原需输入 contact 层的直接送入 concat 下一级的操作中,不再单独进行 concat 步骤,相当于减少了一次传输吞吐量去掉concat层(

TensorRT中使用了一个新的操作——Concatenation操作来代替原有的concat层。Concatenation操作实现了多个tensor的拼接,但是采用了更加高效的实现方式,可以有效地减少计算和内存的占用,提高推理的速度和效率。

在TensorRT中,Concatenation操作可以对多个输入tensor进行拼接,并且可以指定拼接的维度,可以实现灵活的拼接操作。同时,TensorRT还支持对Concatenation操作进行多种优化,例如采用分块处理的方式,减少内存占用;采用流水线处理的方式,提高计算效率等等。这些优化可以进一步提高Concatenation操作的效率和性能。

。)

4Yolov5 使用tensorrt 部署步骤

4.1 定义

 

1网络定义是指 TensorRT 中模型的表示。网络定义是张量和运算符的图;

2编译是指 TensorRT 的模型优化器构建器将网络定义作为输入执行与设备无关和针对特定设备的优化并创建引擎engine.

3 引擎是指由 TensorRT 构建器优化的模型的表示;

4 运行是指 TensorRT 的组件,可在 TensorRT 引擎上执行推理。

4.2模型转换代码解析

4.3 你部署过程中遇到的问题   

5章 部署方案

硬件:基于 jeston tx2 开发板下,进行基于tensorrt 加速部署。

软件:TensorRT + C++的部署方式不仅能过在网络模型方面获得推理加速,而且由于 C++是更偏向底层的语言,因此还能获得语言层面的加速

  1. 加速实验对比

使用pt 模型速度:

 

使用engine模型加速后:

 


 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
TensorRT是英伟达公司推出的一个高性能深度学习优化库,可以用于在生产环境中快速、高效地部署和加速计算机视觉模型。 在TensorRT8.6计算机视觉模型部署与加速教程录屏中,我会详细介绍以下内容: 1. TensorRT介绍:简要介绍TensorRT的特点、优势和适用场景。 2. TensorRT安装与配置:指导观众如何在他们的计算机上安装和配置TensorRT,包括硬件/软件要求以及安装步骤。 3. 模型准备:解释如何准备计算机视觉模型以便在TensorRT中使用,包括模型格式、预处理和后处理步骤。 4. TensorRT工作流程:介绍TensorRT的工作流程,包括构建引擎、优化和推理的过程。 5. 加速技术:介绍TensorRT提供的加速技术,包括深度优化、卷积和矩阵乘法加速等。 6. 性能分析与优化:教授观众如何使用TensorRT进行性能分析和优化,包括性能指标的解释和优化策略的推荐。 7. 实例演示:通过实际的计算机视觉应用案例,演示如何使用TensorRT加速模型推理过程并获得更高的性能。 8. Q&A环节:回答观众提出的问题,并提供有关TensorRT的专业建议和技术支持。 通过这个录屏教程,观众可以了解TensorRT的基本原理和实际应用,学习如何部署和加速计算机视觉模型。他们可以掌握利用TensorRT优化计算图的技巧,从而提高模型的运行效率和速度。最终,他们将能够在实际项目中成功应用TensorRT来实现快速而准确的计算机视觉任务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值