ONNX格式模型部署兼容性框架介绍

描述

 

ONNXRUNTIME介绍

ONNX格式模型部署兼容性最强的框架 ONNXRUNTIME,基本上不会有算子不支持跟不兼容的情况出现,只要能导出ONNX格式模型,它基本上都能成功加载,成功推理。虽然在CPU速度不及OpenVINO、GPU上速度不及TensorRT,但是胜在兼容性强,支持不同硬件上推理部署包括:ARM、CPU、GPU、AMD等,

硬件

可以通过设置不同的推理后台支持,包括:

硬件

支持语言也非常丰富,不止于Python跟C++语言,支持列表如下:

硬件

支持的操作系统包括Windows、Android、乌班图、iOS等。

Python版本安装与测试

Python版本安装特别容易,一条命令行搞定 CPU版本

pip install onnxruntime

 

GPU版本

 

pip install onnxruntime-gpu
通过下面的API函数可以查询当前支持推理Provider,代码如下:

 

硬件

运行结果如下:

硬件

C++版本安装与测试

首先需要下载安装包,以 microsoft.ml.onnxruntime.gpu.1.13.1为例。首先需要配置包含目录

D:microsoft.ml.onnxruntime.gpu.1.13.1buildnativeinclude

 

然后配置库目录:

 

D:microsoft.ml.onnxruntime.gpu.1.13.1runtimeswin-x64native

 

最后配置链接器,我的是支持CUDA版本,配置如下:

 

onnxruntime_providers_shared.lib
onnxruntime_providers_cuda.lib
onnxruntime.lib

 

最后把DLL文件copy到编译生成的可执行文件同一个目录下,直接运行即可。C++推理,简单说分为四步,首先引入包含文件支持,再初始化推理会话对象Session,预处理图像,然后执行推理,最后完成后处理即可。

硬件

以ResNet18模型为例,导出ONNX格式,基于ONNXRUNTIME推理效果如下:

硬件
        责任编辑:彭菁

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分