当前位置: 首页 > article >正文

ONNX模型部署利器ONNXRUNTIME框架

1.ONNXRUNTIME介绍

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

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

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

 

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

2.Python版本安装与测试

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

CPU版本

pip install onnxruntime

GPU版本

pip install onnxruntime-gpu

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

运行结果如下:

3.C++版本安装与测试

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

D:\microsoft.ml.onnxruntime.gpu.1.13.1\build\native\include

然后配置库目录:

D:\microsoft.ml.onnxruntime.gpu.1.13.1\runtimes\win-x64\native

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

onnxruntime_providers_shared.libonnxruntime_providers_cuda.libonnxruntime.lib

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

 

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

 


http://www.kler.cn/news/317992.html

相关文章:

  • 算法-Init
  • [sniffer]分析
  • Excel 冻结多行多列
  • Python机器学习基础(NumPy、Pandas、Matplotlib)
  • 【CPP11?】结合CPP发展历史来理解CPP11
  • 代码随想录算法训练营Day14 | 226.翻转二叉树、101. 对称二叉树、104.二叉树的最大深度、111.二叉树的最小深度
  • 【MySQL内置数据库】information_schema
  • 【C++】检测TCP链接超时——时间轮组件设计
  • 自学前端的正确姿势是...
  • 第17周 第2章Session与ServletContext原理 ---ServletContext与三大作用域对象
  • PerparedStatement概述
  • Qt 模型视图(三):视图类QAbstractItemView
  • Python常见Json对比库deepdiff、json_tools、jsonpatch
  • 【Python】curl命令、Api POST导入cURL、python直接使用cURL
  • OpenHarmony(鸿蒙南向开发)——小型系统内核(LiteOS-A)【内核通信机制】下
  • 球体检测系统源码分享
  • Rust的作用?
  • tar.gz 文件压缩与解压shell实现
  • 付费电表系统的通用功能和应用过程参考模型(下)
  • 鸿蒙HarmonyOS开发:一次开发,多端部署(界面级)天气应用案例
  • R语言NHANES数据分析(2)
  • Angular面试题五
  • LeetCode_sql_day30(1264.页面推荐)
  • 蓝桥等考C++组-2022-11-27-八级
  • 【C++】C++中如何处理多返回值
  • Vue|插件
  • oracle avg、count、max、min、sum、having、any、all、nvl的用法
  • 回答网友的一个SQL问题
  • 国家有要求企业一定要招实习生吗?或者说招了实习生国家会给企业好处吗?
  • IPv6(五)