首页 > 其他分享 >【Paddle2ONNX】为 Paddle2ONNX 适配自适应 ONNX IR Version 功能

【Paddle2ONNX】为 Paddle2ONNX 适配自适应 ONNX IR Version 功能

时间:2024-11-29 16:46:48浏览次数:8  
标签:case ir version 适配 IR Version Paddle2ONNX

1 简介

最近在浏览 Paddle2ONNX 的 Issues 时,我发现有用户需要让 Paddle2ONNX 支持导出的 ONNX 模型根据 Opset Version 自适应 IR Version 的功能。这个功能对于老的 Runtime 来说还是很重要的,于是我动手添加了这个功能,这里写一篇博客和大家分享下。

2 什么是 ONNX IR Version

ONNX IR 是开放神经网络交换标准中定义的一种数据流图表示形式。一般来说,一个 Opset Version 对应着一个 IR Version 版本。在实践中,选择正确的 IR Version 对于确保模型在不同平台和框架之间的兼容性和正确性至关重要。

3 代码实现

3.1 Opset Version 和 IR Version 的对应关系

ONNX 官方文档 Versioning 中我们可以知道,Opset Version 和 IR Version 是强绑定的,具体关系如下表:

ONNX version IR version Opset version ai.onnx
1.2 3 7
1.3 3 8
1.4.1 4 9
1.5.0 5 10
1.6.0 6 11
1.7.0 7 12
1.8.0 7 13
1.8.1 7 13
1.9.0 7 14
1.10.0 8 15
1.10.1 8 15
1.10.2 8 15
1.11.0 8 16
1.12.0 8 17
1.13.0 8 18
1.13.1 8 18
1.14.0 9 19
1.14.1 9 19
1.15.0 9 20
1.16.0 10 21
1.17.0 10 22

3.2 在 Paddle2ONNX 中添加代码

在Paddle2ONNX中,控制 Opset Version 版本的是 OnnxHelper 类。我们考虑从该类中获取到当前 Opset Version 并转换为对应的 IR Version,例如我们可以添加以下代码:

ONNX_NAMESPACE::Version OnnxHelper::GetIRVersion() const {
  int ir_version = 0;
  switch (opset_version) {
    case 7:
    case 8:
      ir_version = 3;
      break;
    case 9:
      ir_version = 4;
      break;
    case 10:
      ir_version = 5;
      break;
    case 11:
      ir_version = 6;
      break;
    case 12:
    case 13:
    case 14:
      ir_version = 7;
      break;
    case 15:
    case 16:
    case 17:
    case 18:
      ir_version = 8;
      break;
    case 19:
    case 20:
      ir_version = 9;
      break;
    case 21:
      ir_version = 10;
      break;
    default:
      Assert(false, "Opset version must be 7-20");
  }
  return static_cast<ONNX_NAMESPACE::Version>(ir_version);
}

由 Opset Version 转换为 IR Version 后,我们需要将 IR Version 指定给 ONNX 模型,例如可以在 exporter.cc 中添加如下代码:

auto ir_version = _helper.GetIRVersion();
auto model = std::make_shared<ONNX_NAMESPACE::ModelProto>();
model->set_ir_version(ir_version);

4 参考资料

标签:case,ir,version,适配,IR,Version,Paddle2ONNX
From: https://www.cnblogs.com/Zheng-Bicheng/p/18577040

相关文章

  • HTML5中required属性有什么应用场景?
    HTML5的required属性主要用于表单验证,它指定了某个表单元素是必填的。用户提交表单时,如果带有required属性的元素没有填写值,浏览器会阻止表单提交并显示错误消息。以下是required属性的一些常见应用场景:确保关键信息的收集:例如注册表单中的用户名、密码、邮箱等字段......
  • 【应急响应】Linux 计划任务与 DFIR 排查实践(三)
    原创Y1x1nY1X1n安全2024年11月29日07:04免责声明本公众号文章中的程序、方法、信息和工具仅用于安全研究、教学、网络安全人员对网站及服务器的检测维护,禁止用于其他非法用途。使用者对不当使用造成的后果承担全部法律及连带责任,作者和公众号不担责。文中安全漏洞情报依公......
  • 《熬夜整理》保姆级系列教程-玩转Wireshark抓包神器教程(7)-Wireshark的TCP包详解-上
    1.简介上一篇中通过宏哥的介绍和讲解,小伙伴或者童鞋们应该知道宏哥今天要讲解和介绍的内容在哪里了吧,没错就是介绍那个OSI七层模型的传输层。因为只有它建立主机端到端的连接如:TCP、UDP。2.TCP是什么?tcp是工作在传输层,也就是网络层上一层的协议。它是面向连接的,可靠的,基于字......
  • 主流开源大模型基于Server适配PyTorch NPU推理指导- 推理场景介绍
    方案概览本方案介绍了在ModelArts的LiteDevServer上使用昇腾计算资源开展常见开源大模型Llama、Qwen、ChatGLM、Yi、Baichuan等推理部署的详细过程。本方案利用适配昇腾平台的大模型推理服务框架vLLM和华为自研昇腾Snt9B硬件,为用户提供推理部署方案,帮助用户使能大模型业务。......
  • 鸿蒙ArkUI-X已更新适配API13啦
    ArkUI-X5.0.1Release版配套OpenHarmony5.0.1Rlease,API13,新增适配部分API13接口支持跨平台;框架能力进一步完善,支持Android应用非压缩模式,支持AndroidFragment对接跨平台。ACETools工具易用性提升,支持创建module时选择module类型、config提示优化和联动编译。组件跨平台能力......
  • app.Environment.IsDevelopment、app.UseStaticFiles() 、在ASP.NET Core应用程序中,调
    在ASP.NETCore应用程序中,app.UseStaticFiles()是一个中间件方法,用于启用对静态文件的服务。这意味着当你的应用程序接收到对静态资源(如HTML文件、CSS文件、JavaScript文件、图片等)的请求时,UseStaticFiles中间件会处理这些请求并提供相应的文件。在ASP.NETCore应用程序中,app.E......
  • Vulkan进阶系列02 - GPU Rendering and Multi-Draw Indirect
    一:概述       GPU渲染与多重间接绘制(GPURenderingandMulti-DrawIndirect),本文介绍了一种通过将绘制调用生成和视锥剔除的处理过程转移到GPU上,从而有效减少CPU使用率的技术方案。二:DrawCall的生成        渲染大型场景的常见方法是遍历每个模型,并在每......
  • 【应急响应】Linux 计划任务与 DFIR 排查实践(二)
    #linux应急响应at服务#cron服务#隐藏任务......
  • 适配音乐v3.2.0 最新可用
    前言一款功能强大的音乐播放器,无广告打扰,畅享纯净音乐之旅。理想选择,让每一个瞬间都被完美的旋律温柔包裹 安装环境[名称]:适配音乐[大小]:79MB[版本]:3.2.0[语言]:简体中文[安装环境]:Android通过网盘分享的文件:适配音乐链接:百度网盘请输入提取码提取码:x5jy界面......
  • windows11升级系统后重新安装virtualbox虚拟网卡变 virtualbox host only Ethernet ad
    windows11系统升级后,重新安装virtualbox5.2.30发现网卡变virtualboxhostonlyEthernetadapter#2如下所示:1.通过查找一些资料,需要删除注册表内残留的virtualboxhostonlyEthernetadapter注册表信息,参考信息:https://blog.csdn.net/weixin_43113691/article/details/1......