敬请关注 YOLO Vision 2025!
2025年9月25日
英国夏令时 10:00 - 18:00
混合活动
Yolo Vision 2024
词汇表

ONNX (开放神经网络交换)

了解 ONNX 如何增强 AI 模型的可移植性和互操作性,从而在各种平台上无缝部署 Ultralytics YOLO 模型。

ONNX(开放神经网络交换)是一种用于表示机器学习(ML)模型的开源格式。ONNX 由微软和 Facebook 等公司共同开发,充当通用转换器,使开发人员能够在不同的 ML 框架和工具之间移动模型。这种互操作性对于简化从模型开发到生产的过程至关重要。团队无需被锁定在单一生态系统中,即可在一个框架(如 PyTorch)中训练模型,并使用另一个框架(如 TensorFlow 或专用推理引擎)部署该模型以进行推理。例如,Ultralytics YOLO 模型可以轻松导出为 ONNX 格式,从而为跨各种平台的部署提供最大的灵活性。

ONNX 的工作原理

ONNX 为计算图提供了一个标准定义,以及一个内置运算符列表。当您将模型转换为 ONNX 格式时,它的架构(由层和数学运算组成)会映射到这个通用标准。由此产生的 .onnx 文件包含网络结构和训练后的 模型权重.

然后,任何支持 ONNX 规范的工具都可以加载此标准化文件。这包括:

ONNX 的实际应用

ONNX 的灵活性使其在许多计算机视觉和 ML 场景中非常宝贵。

  1. 在边缘设备上部署人工智能:开发人员可能会在具有NVIDIA GPU的强大桌面上训练复杂的目标检测模型,例如Ultralytics YOLO11。为了使应用程序能够在低功耗边缘设备(如Raspberry Pi或用于零售分析的智能相机)上运行,该模型将导出到ONNX。然后,可以通过ONNX Runtime或OpenVINO等运行时对其进行优化,以在目标硬件上实现高效性能,而无需原始PyTorch环境。

  2. 将模型集成到各种应用程序中: 考虑一家医疗保健公司,该公司使用 Python 和 TensorFlow 构建医学图像分析模型。医院现有的软件基础设施是使用 C# 和 .NET 构建的。该团队没有重写模型,而是将其导出到 ONNX。然后,C# 应用程序可以使用适用于 .NET 的 ONNX Runtime直接集成模型的功能,从而显着减少开发时间和复杂性。

ONNX与相关概念

区分 ONNX 和相关术语非常重要:

  • 特定于框架的格式:例如 PyTorch 的格式 .ptTensorFlow 的 SavedModel 是各自框架的原生格式。ONNX 充当中间媒介,允许在这些格式之间进行转换,或者通过通用运行时进行部署。 TorchScript 是 PyTorch 模型序列化的另一种格式,有时用作 ONNX 导出的替代方案或前身。
  • 推理引擎/运行时: 诸如 ONNX Runtime、TensorRT 和 OpenVINO 之类的工具是旨在高效执行 ML 模型的软件库。 许多此类引擎都可以使用 ONNX 模型,通常会针对特定的硬件目标应用进一步的优化(例如量化或图形融合)。 ONNX 为这些引擎提供了标准化的模型输入。

总而言之,ONNX 是确保机器学习运营 (MLOps)管道中灵活性和互操作性的重要标准,使开发人员能够选择用于训练和部署的最佳工具,而不受框架限制。诸如 Ultralytics HUB 之类的平台利用此类格式来简化从模型开发到实际应用的整个过程。要了解更多信息,请访问官方 ONNX 网站并浏览 GitHub 上的项目。

加入 Ultralytics 社区

加入人工智能的未来。与全球创新者联系、协作和共同成长

立即加入
链接已复制到剪贴板