onnx简介


Pytorch模型定义和模型权重暂时不支持打包在一起,这在推理时候需要先用模型定义代码构建模型,再加载模型权重,比较麻烦。

借助于onnx格式转换可以把模型打包一起,在ONNX Runtime中运行推理,ONNX Runtime 是针对 ONNX 模型的以性能为中心的引擎,可大大提升模型的性能。

另外,onnx模型支持在不同框架之间转换,也支持tensorRT加速

 

采用ONNX+TensorRT应该是目前最成熟、最优化的方案。假如你的target是一些嵌入式芯片,那么采用MNN也是可以通过onnx轻松实现CPU嵌入式端快速推理的。

既然ONNX和TensorRT这么好,为什么都不用呢?为什么都还在用Python写难看的推理的代码呢?原因也很简单:

  • 入门太难,C++一般人玩不来;

  • 既要懂模型的每一层输入输出,又要懂TensorRT的API,至少要很熟悉。

 

 

上面的是将pytorch首先转化为onnx,然后让TensorRT解析onnx从而构建TensorRT引擎。那么我们如何让TensorRT直接加载引擎文件呢,

也就是说,我们先把onnx转化为TensorRT的trt文件,然后让c++环境下的TensorRT直接加载trt文件,从而构建engine。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM