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