文章目录
0. 前言
-
内容简介:
- User Guide:用户手册,主要包括安装、迁移以及一些基本概念
- TensorRT API Reference
- UFF Converter API Reference
- GraphSurgeon API Reference
1. User Guide
- 用户手册,主要内容包括
- 安装。其实就是直接链接到TensorRT的文档页面,还有就是要安装PyCUDA.
- 从TensorRT 4迁移。这部分我不关心。
- 核心(基本)概念。这部分对我来说挺重要,重点学习一下。
1.1. Core Concepts
- TensorRT Workflow(工作流,基本工作流程,共三步)
- 第一步:模型解析与构建。
- 构建
tensorrt.INetworkDefinition
对象 - 可通过解析器(如ONNX Parser)或TensorRT Network API构建。
- 可通过
tensorrt.Builder
来构建空白的tensorrtINetworkDefinition
- 构建
- 第二步:模型优化(Engine优化)
- 使用
tensorrt.Builder
以及创建好的tensorrt.INetworkDefinition
来创建tensorrt.ICudaEngine
- 优化好的engine可以序列化到内存或本地文件(
.trt
)中。
- 使用
- 第三步:执行
- 通过创建好的
tensorrt.ICudaEngine
新建tensorrt.IExecutionContext
对象,实现模型推理。 - 主要工作是分配资源?
- 通过创建好的
- 第一步:模型解析与构建。
- 大类(classes overview)
- Logger:日志,没啥好多说的
- Engine and Context:就是
tensorrt.ICudaEngine
对象以及tensorrt.IExecutionContext
对象,前者感觉是一个优化好的模型(可能理解不对),后者是模型运行时所需要的上下文(可以理解为模型运行需要的资源) - Builder:用来创建
tensorrt.ICudaEngine
对象,需要以tensorrt.INetworkDefinition
作为输入 - Network:即
tensorrt.INetworkDefinition
对象,表示一个计算图。需要将别的深度学习框架模型转换为这个形式。 - Parsers:解析器,将其他形式的模型转换为
tensorrt.INetworkDefinition
对象
2. TensorRT API Reference
- Foundational Types:TensorRT中的基本数据结构
-
Core:核心组件,看着像是一些运行过程相关的内容。
-
Network:构建网络相关,各种layer以及tensor相关。
-
Plugin:组件,我猜测主要是跟自定义op相关。
-
Int8:看名字就是模型量化,但没细看里面的内容
-
UFF/Caffe/Onnx Parser:模型转换器
3. UFF Converter API Reference
- UFF是啥?
- 类似于onnx的一种模型保存格式,看API主要就是用于TensorFlow。
- 我也没用过,听说也不是那么好用。
- TF不是有TF-TRT吗,为啥还要UFF?不太懂,以后用到了才会知道。
- API包括两个方面
- 转化工具:将tf转换为uff
- operators:类似于Onnx,一堆layer。
4. GraphSurgeon API Reference
- GraphSurgeon 是啥?
- 专门用来处理、转换TF计算图的工具。
- API说白了就是增删改查TF计算图,包括动态图、静态图两方面。
- 不过我现在不怎么用TF,所以也不清楚细节。