探索开放神经网络交换格式(ONNX)。了解如何Ultralytics 导出ONNX 快速跨平台部署与硬件优化。
ONNX 开放神经网络交换格式)是一种开源格式,旨在表示机器学习模型,实现不同人工智能框架和工具之间的互操作性。它充当深度学习的通用翻译器,使开发者能够在一个框架(如PyTorch)中构建模型,然后将其转换为另一个框架(如TensorFlow)进行训练或部署。 PyTorch、TensorFlow,并将其无缝部署到另一种针对推理优化的环境中。 通过定义通用运算符集与标准文件格式ONNX 将模型从研究环境迁移至生产环境时所需的复杂定制转换脚本。这种灵活性对现代AI工作流至关重要——模型训练可能在高性能云GPU上进行,而部署目标却涵盖边缘设备、移动终端或网页浏览器等多元硬件。
在快速演变的人工智能领域,研究人员和工程师通常会为开发生命周期的不同阶段选用不同的工具。数据科学家可能更PyTorch 实验和训练PyTorch 灵活性,而生产工程师则需要TensorRT的优化性能。 TensorRTOpenVINO 部署。 由于缺乏标准交换格式,模型在这些生态系统间的迁移过程既困难又易出错。
ONNX 提供计算图的通用定义ONNX 这一差距。当模型导出ONNX时,它会被序列化为一种能够以框架无关的方式捕获网络结构(层、连接)和参数(权重、偏置)的格式。 这使得针对硬件加速专门优化的推理引擎(ONNX )能够高效地在多个平台上执行模型,包括Linux、Windows、macOS、iOS。
采用开放神经网络交换格式为人工智能项目带来多重战略优势:
.onnx 该文件可在NVIDIA 、Intel 移动NPU(神经处理单元)上加速处理,使用工具如
OpenVINO 或CoreML。
ONNX 的多功能性ONNX 众多行业的核心工具。以下是其应用的两个具体实例:
设想一款用于实时作物健康监测的移动应用程序。 该模型可能在强大的云服务器上,利用大量植物图像数据集进行训练。然而,应用程序需要在农户的智能手机上离线运行。通过将训练好的模型导出ONNX,开发者可ONNX Mobile将其集成到移动应用中。这使得手机处理器能够本地执行目标检测,无需网络连接即可即时识别病虫害。
在电子商务中,"虚拟试穿"功能可能利用姿势估计 ,将服装叠加到用户的网络摄像头画面上。 该模型可能Python训练,但部署目标是网页浏览器。ONNX转换,模型可ONNX Web直接在用户浏览器中运行。此方案利用客户端设备能力(WebGL或WebAssembly)执行计算机视觉任务,确保流畅且保护隐私的体验——视频数据始终不离开用户计算机。
ONNX 模型格式和工具很有帮助:
Ultralytics 简化了将YOLO26等尖端模型转换ONNX 流程。其导出功能直接内置于库中,可自动处理复杂的图遍历和操作符映射。
以下示例演示了如何将预训练的YOLO26模型导出ONNX 以供部署:
from ultralytics import YOLO
# Load the YOLO26n model (Nano version recommended for edge deployment)
model = YOLO("yolo26n.pt")
# Export the model to ONNX format
# The 'dynamic' argument enables variable input sizes
path = model.export(format="onnx", dynamic=True)
print(f"Model exported successfully to: {path}")
一旦导出,这 .onnx 文件可在
Ultralytics 平台 用于管理或直接部署到边缘设备,通过ONNX 实现,使高性能计算机视觉技术几乎可在任何环境中应用。