TensorRT的步骤详情

每个步骤常用的方法和参数:

        1. logger 日志记录器

TensorRT的步骤详情_第1张图片

        通常出现在代码的最开头,在一次会话中,多个builder可以共享同一个logger,通过传入参数的不同,可以产生不同详略的参数,通常使用Verbose和info(这两个等级可以获取一些网络优化过程和优化结果的相关信息)

        2.Builder 引擎构建器

TensorRT的步骤详情_第2张图片

        Builder紧随着logger出现,是用于构建推理引擎的核心对象,在比较旧的TRT版本中,builder常用于设置一些模式,比如开启int8和fp16,指定最大batch size和work space等等,但随着builder config的完善,这些设置都统一转到了builder config中,以后builder仅作为构建引擎的入口,而不再用于设置这些网络属性,其中相应的成员将被废弃(如上图所示)。

        此外dynamic shape模型下, 必须使用builder config及相关的API

        3. BuilderConfig 网络属性选项

TensorRT的步骤详情_第3张图片

        BuilderConfig是Builder中专门用于设置网络属性的一个对象,在比较新的TRT 版本中,可设置构建器最大workspace、开启fp16、int8模式等,另外builderconfig提供了一些高级工具,如限制算法实现的tarctic source、节约构建时间的timing cash、精确控制节点算法的algorithm selector等等

        4. Network

TensorRT的步骤详情_第4张图片

        network是计算图在TRT中的具体描述,由builder生成,在使用TRT原生api搭建网络的workflow中,我们需要不断地想network中添加一些层,并标记network的输入输出张量,而在使用parser导入onnx模型的workflow中,一旦模型解析完成,network的内容就会被自动填入。我们可以在构建期通过network来获取要设置网络的一些信息,如网络的层数、每层的名称和属性、每层的输入输出张量的名称和属性方便调试和其他工作。在使用TRT原生api搭建网络时,上面的三行黄色api使用最多

补充:

TensorRT的步骤详情_第5张图片

        Explicit Btach vs Implicit Batch(推荐使用前者)

        Dynamic Shape模式

TensorRT的步骤详情_第6张图片

出现原因:

1.实际场景中经常需要使用同一个模型来处理不同输入尺寸的数据(不同分辨率的图像,不同长短的句子)

2.每次调用模型处理的数据量的batch可能也是变化的

        向network中添加内容的方法(原生api搭建workflow独有)

TensorRT的步骤详情_第7张图片

        TRT中,需要区分layer和tensor,即区分计算节点和数据节点,与onnx中区分node和tensort类似

TensorRT的步骤详情_第8张图片

        从Network中打印所有层和张量的信息

TensorRT的步骤详情_第9张图片

使用API搭建模型的核心部分

TensorRT的步骤详情_第10张图片

TensorRT的步骤详情_第11张图片

TRT支持的两种低精度模式:FP16和INT8

TensorRT的步骤详情_第12张图片

TensorRT的步骤详情_第13张图片

怎么让一个网络跑起来?

TensorRT的步骤详情_第14张图片

        1)计算引擎的生成

TensorRT的步骤详情_第15张图片

        Binding的概念

TensorRT的步骤详情_第16张图片

        2)Context推理进程(相当于CPU中的一个进程)

TensorRT的步骤详情_第17张图片

        用于输入输出计算的数据怎么准备?

TensorRT的步骤详情_第18张图片

        可做的一些优化

TensorRT的步骤详情_第19张图片

        构建引擎需要时间,怎么构建一次,反复使用?

TensorRT的步骤详情_第20张图片

2.2 Workflow:使用Parser

TensorRT的步骤详情_第21张图片

TensorRT的步骤详情_第22张图片

2.3 Workflow:使用框架内TensorRT接口

TensorRT的步骤详情_第23张图片
        TensorRT开发环境

TensorRT的步骤详情_第24张图片

你可能感兴趣的:(c++,算法,人工智能)