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

1.2.1 AI->ONNX模型格式标准(ONNX Alliance):ONNX(Open Neural Network Exchange)

ONNX(Open Neural Network Exchange,开放神经网络交换)是一套用于表示机器学习模型的开放标准格式,由 Linux 基金会 AI & Data 旗下的 ONNX 联盟(ONNX Alliance)维护,其核心目标是消除深度学习框架壁垒,实现模型在不同框架、工具、硬件间的自由迁移与部署

ONNX 联盟(ONNX Alliance)

ONNX 最初由 Facebook(Meta)与微软于 2017 年联合发起,后纳入Linux 基金会 AI(LFAI)治理,成为中立的开源社区项目

  • 核心成员:Meta、微软、亚马逊、英特尔、英伟达、AMD、ARM、华为、百度、腾讯等
  • 治理模式:开放社区治理,通过SIG(特别兴趣小组)WG(工作组)协作,透明决策
  • 核心使命:为机器学习模型定义通用中间表示(IR),让 AI 模型成为可跨平台复用的 “通用资产”

ONNX 格式核心技术规范

ONNX 模型本质是基于Google Protobuf(Protocol Buffers)序列化的二进制文件(后缀.onnx)。其规范(ONNX IR)由三部分构成ONNX:

核心文件结构(Protobuf 定义)

ONNX 模型是一个分层的ModelProto对象:

  • ModelProto(顶层容器)

    • 元数据:IR 版本、算子集版本(Opset)、生产者(如 PyTorch)、文档、许可证
    • GraphProto:核心计算图
  • GraphProto(计算图)

    • 有向无环图(DAG),包含:

      • 输入 / 输出(ValueInfoProto):张量名、数据类型、形状(支持动态维度)。
      • 节点(NodeProto):算子(Op),如ConvReLUMatMul
      • 初始器(Initializer/TensorProto):存储权重、偏置等常量参数
        ![[GraphProto(计算图).jpeg]]

标准算子集(Operator Sets)

  • 核心域(ai.onnx):定义数百种标准化算子,覆盖 CV、NLP、传统 ML 等
  • 版本化(Opset Version):算子按版本迭代(如 Opset 24),确保向后兼容ONNX
  • 扩展域:支持自定义域(如ai.onnx.contribcom.huawei),用于新增算子ONNX

数据类型系统

  • 基础类型float32float16bfloat16int8/16/32/64uint8boolstring
  • 高级支持FLOAT8(FP8 E4M3、E5M2)、量化类型、稀疏张量、序列 / 映射等。

核心优势

  1. 跨框架互操作性

    • 支持:PyTorch、TensorFlow、Keras、MXNet、PaddlePaddle、scikit-learn、XGBoost 等。
    • 工作流:训练(A 框架)→ 导出 ONNX → 推理(B 框架 / 引擎)
  2. 全平台硬件支持

    • 云端:CPU、GPU(NVIDIA/AMD)、TPU、NPU
    • 端侧:Android、iOS、WebAssembly、嵌入式、IoT
    • 引擎:ONNX Runtime、TensorRT、OpenVINO、TNN、MNN
      ![[全平台硬件支持.jpeg]]
  3. 高性能与优化

    • 原生支持图优化(常量折叠、算子融合)、量化(INT8/FP16)、剪枝
    • ONNX Runtime(ORT):跨平台高性能推理引擎,硬件厂商深度优化
  4. 可扩展与兼容

    • 动态形状、控制流(If/Loop)、自定义算子、模型版本转换工具

典型工作流

  1. 导出:PyTorch/TensorFlow →torch.onnx.export()/tf2onnx.onnx文件
  2. 校验onnx.checker.check_model(model)验证合法性ONNX
  3. 优化onnxsim(简化)、ORT 优化器、量化工具
  4. 可视化:Netron 工具查看计算图
  5. 推理:ONNX Runtime / TensorRT / OpenVINO 加载运行

生态与现状

  • ONNX Model Zoo:官方预训练模型库(ResNet、BERT、YOLO 等)
  • 工具链:转换器、优化器、可视化、校验工具
  • 地位AI 模型部署的事实标准,广泛用于云、边、端全场景

总结

ONNX 是 AI 工业化的关键基础设施,通过统一模型表示,解决了框架碎片化、部署成本高、硬件绑定等痛点。它让开发者专注建模而非适配,加速模型从研发到落地的全流程

http://www.jsqmd.com/news/529462/

相关文章:

  • Simulink永磁同步电机无速度传感器控制中的模型参考自适应控制(MRAS)仿真模型 附资料
  • 数据库索引的基石:深度解析 B 树与 B+ 树的差异与应用
  • 如何在Windows屏幕上实现真正的实时绘画?LiveDraw让你告别截图标注的烦恼
  • 7个实战技巧:基于Pear Admin Flask构建企业级后台管理系统
  • 当嵌入式工程师 染上了“AI 病“~
  • JsonTop.cn 全解析:开发者必备的一站式在线工具平台,高效解决开发刚需
  • 计算机控制系统设计课程设计/结课报告 ①被控系统为三阶系统 ②采用的控制方式有:最少控制系统、...
  • FireRedASR Pro在.NET生态中的调用:C#客户端开发全指南
  • “人味”护盾:软件测试从业者在AI时代的价值跃迁
  • Cocos Creator 3.7 实战:用Shader实现文字渐变效果(附完整代码)
  • Python-for-Android企业级应用部署方案:跨平台编译架构解析与性能优化最佳实践
  • OpenClaw技能市场探索:最适合GLM-4.7-Flash的5个实用技能推荐
  • SEO_快速诊断并解决常见SEO问题的办法(444 )
  • 【UE组件解析】从Actor到基元:三类核心组件的功能边界与实战选用指南
  • 跟着卷卷龙一起学 Camera-- 低延迟
  • n8n Docker 部署实战:从零搭建企业级自动化工作流平台
  • 当激光干涉遇上材料科学:拆解‘干涉法测热膨胀系数’实验背后的工程思维与应用前景
  • Python环境安装与LiuJuan20260223Zimage开发环境一键配置脚本编写
  • 【紧急预警】MCP v1.1.0起强制启用Sampling接口TLS双向认证!附官方未公开的plugin-install.sh降级兼容补丁(限72小时领取)
  • QtCreator跨平台开发环境配置全攻略:从Windows到Linux的gcc/g++/gdb实战
  • 实用存储设备检测指南:3步使用F3免费工具识别假冒U盘和SD卡
  • STM32实战:手把手教你用PWM实现LED呼吸灯效果(附完整代码)
  • 解锁游戏存档自由:Apollo Save Tool让你的PS4存档管理焕然一新
  • 赶deadline必备!行业天花板级的降AIGC工具 —— 千笔·专业学术智能体
  • 异步与回调
  • 海外短剧系统开发:多语言、多币种、多支付、全球 CDN 一站式方案
  • 2026年Uniapp商城开发终极指南:UI 组件库 vs 全栈模板,如何为你的项目精准选型?
  • 新能源汽车项目热管理分析:基于KULI软件的整车级别热模型研究及工况模拟报告
  • 【Day47】912. 排序数组【6 种排序】
  • 国民技术港股上市:市值83亿港元 年亏1.2亿 实控人孙迎彤持股不足3%