TensorRT 入门(4) Python API 浏览

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中的基本数据结构

image-20210223154745827

  • Core:核心组件,看着像是一些运行过程相关的内容。

    image-20210223154733939

  • 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,所以也不清楚细节。

猜你喜欢

转载自blog.csdn.net/irving512/article/details/113993310
今日推荐