赞
踩
我尽量用尽可能短的语言将本文的核心内容浓缩到文章的标题中,前段时间给大家讲解Jetson Nano的部署,我们讲到用caffe在Nano上部署yolov3,感兴趣的童鞋可以看看之前的文章,然后顺便挖了一个坑:如何部署ONNX模型, 这个问题其实分为两个部分,第一是为什么要用ONNX,第二是如何部署ONNX。本文就是来填这个坑的。
TLTR,本文的核心思想包括:
题图是250fps的人脸检测模型,得益于TensorRT的加速。输入尺寸为1280x960.
现在大家都喜欢用pytorch训练模型,而pytorch训练的模型转成pth,用C++推理也很难达到真正的加速效果,因为本质上最耗时的网络前向推理部分并没有太多的加速。并且采用libtorch C++推理pytorch并不是一件简单的事情,除非你的模型可以被trace。
在这种情况之下,引入onnx更合理,从目前整个DL生态来看,onnx具有以下好处:
前段时间,我们release了一个retinaface的pytorch项目,并且我们想办法将它导出到了onnx模型,当然这期间经过一些修改,没有复杂模型的代码可以在不修改的情况下轻而易举export到onnx,关于这部分代码可以在我们的平台上找到:
http://manaai.cnmanaai.cn我们今天要做的事情,就是在上面的onnx模型的基础上,采用TensorRT来进行推理。先做一个简单的速度对比:
可以看到,采用TensorRT对ONNX模型加速,速度提升可以说是天囊之别。并且,采用TensorRT纯C+
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。