TensorRT开发教程
文章平均质量分 93
NVIDIA TensorRT 快速入门指南适用于想要试用 TensorRT SDK 的用户; 具体来说,您将学习如何快速构建应用程序以在 TensorRT 引擎上运行推理。
扫地的小何尚
这个作者很懒,什么都没留下…
展开
-
1.TensorRT中文版开发教程-----指南简介
1.手册简介NVIDIA® TensorRT™ 是一个促进高性能机器学习推理的 SDK。 它旨在与 TensorFlow、PyTorch 和 MXNet 等训练框架以互补的方式工作。 它特别专注于在 NVIDIA 硬件上快速高效地运行已经训练好的网络。有关如何安装 TensorRT 的说明,请参阅 NVIDIA TensorRT 安装指南。NVIDIA TensorRT 快速入门指南适用于想要试用 TensorRT SDK 的用户; 具体来说,您将学习如何快速构建应用程序以在 TensorRT 引擎原创 2022-04-27 23:18:57 · 11645 阅读 · 1 评论 -
2.TensorRT中文版开发教程-----TensorRT的功能
2.TensorRT的功能本章概述了您可以使用 TensorRT 做什么。它旨在对所有 TensorRT 用户有用。2.1. C++ and Python APIsTensorRT 的 API 具有 C++ 和 Python 的语言绑定,具有几乎相同的功能。 Python API 促进了与 Python 数据处理工具包和库(如 NumPy 和 SciPy)的互操作性。 C++ API 可以更高效,并且可以更好地满足某些合规性要求,例如在汽车应用中。注意: Python API 并非适用于所有平台。原创 2022-04-27 23:20:16 · 11590 阅读 · 1 评论 -
3.TensorRT中文版开发教程-----TensorRT的C++接口解析
3.TensorRT的C++接口解析点此链接加入NVIDIA开发者计划本章说明 C++ API 的基本用法,假设您从 ONNX 模型开始。 sampleOnnxMNIST更详细地说明了这个用例。C++ API 可以通过头文件NvInfer.h访问,并且位于nvinfer1命名空间中。例如,一个简单的应用程序可能以:#include “NvInfer.h”using namespace nvinfer1;TensorRT C++ API 中的接口类以前缀I开头,例如ILogger 、 IBu原创 2022-04-28 16:14:53 · 13397 阅读 · 2 评论 -
4.TensorRT中文版开发教程-----TensorRT的Python接口解析
TensorRT的Python接口解析点此链接加入NVIDIA开发者计划本章说明 Python API 的基本用法,假设您从 ONNX 模型开始。 onnx_resnet50.py示例更详细地说明了这个用例。Python API 可以通过tensorrt模块访问:import tensorrt as trt4.1. The Build Phase要创建构建器,您需要首先创建一个记录器。 Python 绑定包括一个简单的记录器实现,它将高于特定严重性的所有消息记录到stdout 。logge原创 2022-04-28 16:56:09 · 10642 阅读 · 0 评论 -
5.TensorRT中文版开发教程-----TensorRT如何工作
TensorRT如何工作本章提供了有关 TensorRT 工作原理的更多详细信息。5.1. Object LifetimesTensorRT 的 API 是基于类的,其中一些类充当其他类的工厂。对于用户拥有的对象,工厂对象的生命周期必须跨越它创建的对象的生命周期。例如, NetworkDefinition和BuilderConfig类是从构建器类创建的,这些类的对象应该在构建器工厂对象之前销毁。此规则的一个重要例外是从构建器创建引擎。创建引擎后,您可以销毁构建器、网络、解析器和构建配置并继续使用引原创 2022-04-28 20:36:08 · 10251 阅读 · 0 评论 -
6.TensorRT中文版开发教程-----从头搭建TensorRT深度学习推理引擎
6.TensorRT 进阶用法点击此处加入NVIDIA开发者计划6.1. The Timing Cache为了减少构建器时间,TensorRT 创建了一个层时序缓存,以在构建器阶段保存层分析信息。它包含的信息特定于目标构建器设备、CUDA 和 TensorRT 版本,以及可以更改层实现的 BuilderConfig 参数,例如BuilderFlag::kTF32或BuilderFlag::kREFIT 。如果有其他层具有相同的输入/输出张量配置和层参数,则 TensorRT 构建器会跳过分析并重用原创 2022-04-29 12:25:14 · 13995 阅读 · 0 评论 -
7.TensorRT中文版开发教程-----TensorRT中的INT8量化详解
7. 如何使用TensorRT中的INT8点击此处加入NVIDIA开发者计划7.1. Introduction to QuantizationTensorRT 支持使用 8 位整数来表示量化的浮点值。量化方案是对称均匀量化 - 量化值以有符号 INT8 表示,从量化到非量化值的转换只是一个乘法。在相反的方向上,量化使用倒数尺度,然后是舍入和钳位。要启用任何量化操作,必须在构建器配置中设置 INT8 标志。7.1.1. Quantization Workflows创建量化网络有两种工作流程:训原创 2022-04-30 00:13:00 · 14805 阅读 · 2 评论 -
8.TensorRT中文版开发教程-----如何在TensorRT中使用动态形状(Dynamic Shapes)
在TensorRT中使用动态形状(Dynamic Shapes)点击此处加入NVIDIA开发者计划动态形状(Dynamic Shapes) 是延迟指定部分或全部张量维度直到运行时的能力。动态形状可以通过 C++ 和 Python 接口使用。以下部分提供了更详细的信息;但是,这里概述了构建具有动态形状的引擎的步骤:1.网络定义不得具有隐式批次维度。C++通过调用创建INetworkDefinitionIBuilder::createNetworkV2(1U << s原创 2022-05-02 12:04:08 · 13475 阅读 · 0 评论 -
9.TensorRT中文版开发教程-----TensorRT中的自定义层(Extending TensorRT With Custom Layers)
TensorRT中的自定义层点击此处加入NVIDIA开发者计划NVIDIA TensorRT 支持多种类型的层,其功能不断扩展;但是,在某些情况下,支持的层不能满足模型的特定需求。您可以通过实现自定义层(通常称为插件)来扩展 TensorRT。9.1. Adding Custom Layers Using The C++ API您可以通过从 TensorRT 的插件基类之一派生来实现自定义层。原创 2022-05-08 07:23:36 · 8100 阅读 · 2 评论 -
10.TensorRT中文版开发教程-----TensorRT中的循环
TensorRT中的循环点击此处加入NVIDIA开发者计划NVIDIA TensorRT 支持循环结构,这对于循环网络很有用。 TensorRT 循环支持扫描输入张量、张量的循环定义以及“扫描输出”和“最后一个值”输出。10.1. Defining A Loop循环由循环边界层(loop boundary layers)定义。ITripLimitLayer指定循环迭代的次数。IIteratorLayer使循环能够迭代张量。IRecurrenceLayer指定一个循环定义。ILoopOut原创 2022-05-08 11:22:38 · 10547 阅读 · 0 评论 -
11.TensorRT中文版开发教程-----TensorRT之条件控制
TensorRT之条件控制点击此处加入NVIDIA开发者计划NVIDIA TensorRT 支持条件 if-then-else 流控制。 TensorRT 条件用于实现网络子图的条件执行。11.1. Defining A Conditionalif-conditional 由条件边界层定义:IConditionLayer表示predicate 并指定条件是应该执行真分支(then-branch)还是假分支(else-branch)。IIfConditionalInputLayer指定两个条件原创 2022-05-08 22:21:40 · 7998 阅读 · 0 评论 -
12.TensorRT中文版开发教程-----TensorRT和DLA(Deep Learning Accelerator)
TensorRT和DLA(Deep Learning Accelerator)点击此处加入NVIDIA开发者计划NVIDIA DLA(Deep Learning Accelerator–深度学习加速器)是一款针对深度学习操作的固定功能加速器引擎。 DLA 旨在对卷积神经网络进行全硬件加速。 DLA支持卷积、反卷积、全连接、激活、池化、批量归一化等各种层,DLA不支持Explicit Quantization 。有关 TensorRT 层中 DLA 支持的更多信息,请参阅DLA 支持的层。 trtex原创 2022-05-09 16:18:25 · 11947 阅读 · 0 评论 -
13.TensorRT中文版开发教程-----TensorRT的最佳性能实践与性能调优
TensorRT的最佳性能实践点击此处加入NVIDIA开发者计划13.1. Measuring Performance在开始使用 TensorRT 进行任何优化工作之前,必须确定应该测量什么。没有衡量标准,就不可能取得可靠的进展或衡量是否取得了成功Latency网络推理的性能度量是从输入呈现给网络到输出可用所经过的时间。这是单个推理的网络延迟。较低的延迟更好。在某些应用中,低延迟是一项关键的安全要求。在其他应用程序中,延迟作为服务质量问题对用户来说是直接可见的。对于批量处理,延迟可能根本不重要。原创 2022-05-10 08:55:05 · 12054 阅读 · 2 评论 -
14.TensorRT中文版开发教程-----TensorRT中的常见问题
TensorRT中的常见问题点击此处加入NVIDIA开发者计划以下部分有助于回答有关 NVIDIA TensorRT 典型用例的最常见问题。14.1. FAQs本部分旨在帮助解决问题并回答我们最常问的问题。问:如何创建针对多种不同批次大小进行优化的引擎?答:虽然 TensorRT 允许针对给定批量大小优化的引擎以任何较小的大小运行,但这些较小大小的性能无法得到很好的优化。要针对多个不同的批量大小进行优化,请在分配给OptProfilerSelector::kOPT的维度上创建优化配置文件。问原创 2022-05-10 22:30:09 · 11000 阅读 · 0 评论 -
16.TensorRT中文版开发教程-----TensorRT的数据格式
TensorRT的数据格式定义详解点击此处加入NVIDIA开发者计划TensorRT 支持不同的数据格式。有两个方面需要考虑:数据类型和布局。数据类型格式数据类型是每个单独值的表示。它的大小决定了取值范围和表示的精度,分别是FP32(32位浮点,或单精度),FP16(16位浮点或半精度),INT32(32位整数表示),和 INT8(8 位表示)。布局格式布局格式确定存储值的顺序。通常,batch 维度是最左边的维度,其他维度指的是每个数据项的方面,例如图像中的C是通道, H是高度, W是宽度。原创 2022-05-11 19:31:48 · 9856 阅读 · 1 评论 -
17.TensorRT中文版开发教程-----TensorRT的命令行程序trtexec
TensorRT的命令行程序点击此处加入NVIDIA开发者计划A.3.1. trtexec示例目录中包含一个名为trtexec的命令行包装工具。 trtexec是一种无需开发自己的应用程序即可快速使用 TensorRT 的工具。trtexec工具有三个主要用途:它对于在随机或用户提供的输入数据上对网络进行基准测试很有用。它对于从模型生成序列化引擎很有用。它对于从构建器生成序列化时序缓存很有用。A.3.1.1. Benchmarking Network如果您将模型保存为 ONNX 文件原创 2022-05-11 20:13:31 · 13477 阅读 · 3 评论