TAO系列12-将模子摆设到Jetson修建!taobak

前面我们花了很多力气在TAO上面训练模型,其最终目的就是要部署到推理设备上发挥功能。除了将模型训练过程进行非常大幅度的简化,以及整合迁移学习等功能之外,TAO还有一个非常重要的任务,就是让我们更轻松获得TensorRT加速引擎。

前面我们花了很多力气在TAO上面训练模型,其最终目的就是要部署到推理设备上发挥功能。除了将模型训练过程进行非常大幅度的简化,以及整合迁移学习等功能之外,TAO还有一个非常重要的任务,就是让我们更轻松获得TensorRT加速引擎。

将一般框架训练的模型转换成TensorRT引擎的过程并不轻松,但是TensorRT所带来的性能红利又是如此吸引人,如果能避开麻烦又能享受成果,这是多么好的福利!

下图是将一般模型转成TesnorRT的标准步骤,在中间”Builder”右边的环节是相对单纯的,比较复杂的是”Builder”左边的操作过程。

根据项目的README.md指示,我们需要先为工作环境添加依赖库,不过由于部分库的版本关系taobak,请先将requirements.txt的第1、3行进行以下的修改:

这个执行并不复杂,是因为TensorRT已经提供yolov3_to_onnx.py的Python代码,但如果将代码打开之后,就能感受到这750+行代码要处理的内容是相当复杂,必须对YOLOv3的结构与算法有足够了解,包括解析yolov3.cfg的788行配置。想象一下,如果这个代码需要自行开发的话,这个难度有多高!

以上是从一般神经网络模型转成TensorRT加速引擎的标准步骤,这需要对所使用的神经网络的结构层、数学公式、参数细节等等都有相当足够的了解,才有能力将模型先转换成ONNX文件,这是技术门槛比较高的环节。

用TAO工具所训练、修剪并汇出的.etlt文件,可以跳过上述过程,直接在推理设备上转换成TensorRT加速引擎,我们完全不需要了解神经网络的任何结构与算法内容,直接将.etlt文件复制到推理设备上,然后用TAO所提供的转换工具进行转换就可以。

下载压缩文件后执行解压缩,就会生成tao-converter与README.txt两个文件,再根据README.txt的指示执行以下步骤:

这是TensorRT的开源插件,项目在,下面提供的安装说明非常复杂,我们将繁琐的步骤整理之后,就是下面的步骤: