TensorRT 7-开发指南中文版_Plus【3】
文章目录
0 前言:
英伟达官方-TensorRT开发者指南7 翻译+整理Plus版,会有一个完整的系列。前面的基础理论以翻译为主,外加实战及理解。
1 TensorRT交流群
我建立了一个,TensorRT微信交流群,
关注公众号:菜鸡Ai
后台回复:加群
备注:学校|公司+昵称+TensorRT 会有小哥哥拉你进群。
2 TensorRT核心库中的关键接口包括:
网络定义
网络定义接口为应用程序提供指定网络定义的方法。可以指定输入和输出张量,可以添加层,并且有一个用于配置每个支持层类型的接口。以及层类型,如卷积层和递归层,以及插件层类型允许应用程序实现TensorRT本机不支持的功能。
优化配置文件
优化配置文件指定对动态尺寸的约束。
生成器配置
生成器配置界面指定创建引擎的详细信息。它允许应用程序指定优化配置文件、最大工作空间大小、可接受的最低精度水平、自动调整的定时迭代计数以及量化网络以8位精度运行的接口。
Builder
生成器接口允许从网络定义和生成器配置创建优化的引擎。
Engine
引擎接口允许应用程序执行推理。它支持同步和异步执行、分析、枚举和查询引擎输入和输出的绑定。一个引擎可以有多个执行上下文,允许使用一组经过训练的参数同时执行多个批处理。
3 TensorRT Python API
我们可以在没有任何深度框架的情况下使用TensorRT 的Python API。
TensorRT的以下必要步骤:
‣根据模型创建TensorRT网络定义
‣调用TensorRT生成器从网络创建优化的运行时引擎
‣序列化和反序列化引擎以便在运行时快速重新创建
‣向引擎提供要执行的数据
3.1 C++ API和Python API对比
1、在支持你的需求方面他们接近相同。
\2、Python API的主要好处是数据预处理和后处理是易于使用的,因为您能够使用各种库,很方便的调用NumPy和SciPy这写科学计算库。
3、在安全性很重要的情况下,C++ API应该被使用,例如,在汽车自动驾驶等
4 Python API使用
4.1 导入TensorRT 到Python
import tensorrt as trt
4.2 从模型创建TensorRT网络
最简单方法
是使用TensorRT解析器库导入模型,TensorRT支持以下格式解析器,用于序列化模型经过训练的网络以创建网络定义
4.2.1 Caffe解析器
该解析器可用于解析在BVLC Caffe或NVCaffe 0.16中创建的Caffe网络。它还提供了为自定义层注册插件工厂的功能。
4.2.2 UFF解析器 (used for TensorFlow)
这个解析器可以用来解析UFF格式的网络。它还提供注册插件工厂和为自定义层传递字段属性的功能。主要是NvUffParser或Python UFF解析器。
4.2.3 ONNX解析器
这个解析器可以用来解析ONNX模型。主要是NvONNXParser或Python ONX解析器。
另一种方法
直接使用TensorRT网络API定义模型。用少量API调用来定义网络图中的每一层,并为模型的训练参数实现自己的导入机制。
注意注意注意,很重要!避坑!
The TensorRT Python API is not available for all platforms.
为了避免掉进死坑出不来,一定要看 TensorRT 7.2.2 API 支持列表文档!
该文档我打包成pdf格式了,该支持列表列出了TensorRT 7.2.2 API、解析器和层所支持的平台、特性和硬件功能。
公众号回复:TensorRT7支持列表