0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

OpenCV学堂 来源:OpenCV学堂 2023-06-19 11:50 次阅读

ONNXRUNTIME介绍

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

1665fff6-0d1d-11ee-962d-dac502259ad0.png

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

16a1b50a-0d1d-11ee-962d-dac502259ad0.png

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

16b915a6-0d1d-11ee-962d-dac502259ad0.png

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

Python版本安装与测试

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

pip install onnxruntime

GPU版本

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

16e5c8f8-0d1d-11ee-962d-dac502259ad0.png

运行结果如下:

16f710f4-0d1d-11ee-962d-dac502259ad0.png

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,预处理图像,然后执行推理,最后完成后处理即可。

1714b672-0d1d-11ee-962d-dac502259ad0.png

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

17711d18-0d1d-11ee-962d-dac502259ad0.png
责任编辑:彭菁

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

    关注

    11

    文章

    2922

    浏览量

    64817
  • 框架
    +关注

    关注

    0

    文章

    297

    浏览量

    17045
  • 模型
    +关注

    关注

    1

    文章

    2704

    浏览量

    47696

原文标题:ONNX模型部署利器ONNXRUNTIME框架

文章出处:【微信号:CVSCHOOL,微信公众号:OpenCV学堂】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    百度飞桨PP-YOLOE ONNX 在LabVIEW中的部署推理(含源码)

    对于如何在LabVIEW中实现该模型部署,笔者目前还没有看到相关介绍文章,所以笔者在实现PP-YOLOE ONNX 在LabVIEW中的部署
    的头像 发表于 05-26 14:01 477次阅读
    百度飞桨PP-YOLOE <b class='flag-5'>ONNX</b> 在LabVIEW中的<b class='flag-5'>部署</b>推理(含源码)

    系统的电磁兼容性分析模型及设计方法

    本帖最后由 sder1357 于 2011-10-24 09:21 编辑 系统的电磁兼容性分析模型及设计方法1 电磁干扰的途径及耦合过程1.1电磁干扰途径透过屏蔽体将干扰耦合至屏蔽体内透过
    发表于 10-19 19:51

    深度探索ONNX模型部署 精选资料分享

    这篇文章从多个角度探索了ONNX,从ONNX的导出到ONNX和Caffe的对比,以及使用ONNX遭遇的困难以及一些解决办法,另...
    发表于 07-20 07:41

    ONNX的相关资料分享

    ONNX文件并生成特定平台和运行框架所支持的神经网络模型ONNX本身不是AI神经网络运行框架,只是AI神经网络
    发表于 11-05 06:45

    嵌入式AI在linux芯片平台上的部署方案分享

    ONNX文件并生成特定平台和运行框架所支持的神经网络模型ONNX本身不是AI神经网络运行框架,只是AI神经网络
    发表于 12-14 06:18

    如何使用Paddle2ONNX模型转换工具将飞桨模型转换为ONNX模型

    如何使用Paddle2ONNX模型转换工具将飞桨模型转换为ONNX模型
    发表于 12-29 07:42

    EIQ onnx模型转换为tf-lite失败怎么解决?

    我们正在尝试将 tflite 框架与 npu 一起使用来进行机器学习。这是我们的步骤:1)用pytorch训练一个模型2) 以onnx格式导出模型
    发表于 03-31 08:03

    OpenHarmony 小型系统兼容性测试指南

    前言基于OpenHarmony开源代码研发的设备和业务应用满足OpenHarmony开源兼容性定义的技术要求,完成兼容性测试。本文详细介绍基于小型系统兼容性测试过程,指导完成测试。
    发表于 04-07 09:01

    将TensorFlow Lite模型转换为ONNX

    由 Facebook 和 Microsoft 创建的开放格式神经网络交换格式 ONNX,是一种用于表示机器学习模型
    的头像 发表于 12-08 23:19 1091次阅读

    YOLOX模型ONNX格式说明

    我记得大概是在去年七月份的时候我写过一篇文章是介绍YOLOX+OpenVINO推理的,下载YOLOX的ONNX格式模型(github上可以下载)
    的头像 发表于 04-13 08:35 4993次阅读

    Flex Logix InferX X1M边缘推理加速器

      此外,开放神经网络交换 (ONNX格式兼容性允许 InferX X1M 工具以最佳方式自动将框架中表示的任何模型映射到 X1 加速
    的头像 发表于 07-11 09:56 935次阅读

    如何使用TensorRT框架部署ONNX模型

    模型部署作为算法模型落地的最后一步,在人工智能产业化过程中是非常关键的步骤,而目标检测作为计算机视觉三大基础任务之一,众多的业务功能都要在检测的基础之上完成,本文提供了YOLOv5算法从0部署
    的头像 发表于 10-31 14:27 2609次阅读

    TorchVision框架模型导出并部署到ONNXRUNTIME C++全流程解析

    ONNXRUNTIME是主流的深度学习部署框架之一,支持ONNX格式模型在CPU、GPU、ARM等不同硬件平台上加速推理,支持C++、Pyt
    的头像 发表于 07-13 14:46 763次阅读
    TorchVision<b class='flag-5'>框架</b>下<b class='flag-5'>模型</b>导出并<b class='flag-5'>部署</b>到ONNXRUNTIME C++全流程解析

    用STM32Cube.AI部署ONNX模型实操示例:风扇堵塞检测

    用STM32Cube.AI 部署ONNX 模型实操示例:风扇堵塞检测
    的头像 发表于 09-28 16:25 1838次阅读
    用STM32Cube.AI<b class='flag-5'>部署</b><b class='flag-5'>ONNX</b><b class='flag-5'>模型</b>实操示例:风扇堵塞检测

    通过新的ONNX导出器简化模型导出流程

    大家好。我叫Manav Dalal,今天我将讲解如何通过新的ONNX导出器简化模型导出流程。如果你还没有听说过ONNX,它是一种用于表示机器学习模型的开放
    的头像 发表于 01-10 09:45 284次阅读
    通过新的<b class='flag-5'>ONNX</b>导出器简化<b class='flag-5'>模型</b>导出流程