了解ONNX 如何增强人工智能模型的可移植性和互操作性,实现在不同平台上无缝部署Ultralytics YOLO 模型。
在快速发展的人工智能(AI)和机器学习(ML)领域,在不同工具和平台之间高效移动模型至关重要。ONNX (开放神经网络交换)通过提供专为人工智能模型设计的开源格式来应对这一挑战。它充当了通用翻译器的角色,允许开发人员在一个框架中训练模型,如 PyTorch等框架中训练模型,然后使用另一种框架或推理引擎(如 TensorFlow或专门的运行时(如ONNX Runtime)进行部署。这种互操作性简化了从研究到生产的过程,促进了人工智能生态系统内的协作和灵活性。ONNX 最初由Facebook AI Research和Microsoft 研究院共同开发,现已成为一个蓬勃发展的社区项目。
ONNX 的核心价值在于促进 可移植性和互操作性 在人工智能开发生命周期内。开发人员可以利用ONNX 在不同工具和硬件平台之间自由移动模型,而不是被锁定在特定框架的生态系统中。通过定义一套通用的运算符(人工智能模型的构件),开发人员可以在不同的工具和硬件平台之间自由移动模型。 神经网络)和标准文件格式 (.onnx
),ONNX 可确保模型的结构和学习到的参数 (重量) 的表示方法是一致的。这对 Ultralytics YOLO 模型,因为Ultralytics 提供了直接的方法来 将模型导出为ONNX 格式.这种导出功能可让用户将模型 YOLOv8 或最新的 YOLO11 并将其部署在各种硬件和软件平台上,通常利用优化的 推理引擎 以提高性能和 硬件加速.
ONNX 通过几个关键技术特征实现互操作性:
ONNX 是连接模型训练环境和各种部署目标的重要桥梁。下面是两个具体例子:
必须将ONNX 与相关术语区分开来:
.pt
/.pth
或 TensorFlow 的SavedModel 是各自框架的原生格式。ONNX 充当了中间人的角色,允许在这些格式之间进行转换,或通过通用运行时进行部署。 TorchScript 是PyTorch 模型序列化的另一种格式,有时被用作ONNX 导出的替代或先驱。总之,ONNX 是确保机器学习操作(MLOps)管道灵活性和互操作性的重要标准,使开发人员能够选择最佳工具进行训练和部署,而不受框架限制。Ultralytics HUB等平台利用这种格式简化了从模型开发到实际应用的过程。