了解ONNX 如何增强人工智能模型的可移植性和互操作性,实现Ultralytics YOLO 模型在不同平台上的无缝部署。
开放神经网络交换ONNX)是一个开源标准,旨在以一种可 机器学习(ML)模型的方式,以确保在不同框架和硬件间的可移植性。 的方式表示机器学习(ML)模型,以确保不同框架和硬件之间的可移植性。ONNX 最初由Microsoft 和 Facebook 等公司开发,ONNX 是人工智能的 "通用翻译器"。它允许开发人员在一个 生态系统中训练模型,例如 PyTorch等生态系统中训练模型,并将其无缝部署到 另一个生态系统中无缝部署,如 TensorFlow或专门的 推理引擎。这种互操作性消除了 从研究环境转向生产应用时,无需重建或重新训练网络、 大大简化了 模型部署管道。
ONNX 的核心是定义一套通用操作符--深度学习(DL)和机器学习模型的构建模块 深度学习(DL)和机器学习模型的构件--以及标准文件格式。 标准文件格式。当模型转换为ONNX 时,其计算结构会被映射为一个静态的 计算图。在这个图中,节点代表数学运算 节点代表数学运算(如卷积或激活函数),边代表节点之间的数据张量流。
由于这种图形表示是标准化的,因此硬件制造商可以为 ONNX 构建优化的执行提供商。
ONNX的优化执行提供商。这意味着一个 .onnx 文件可以在不同的硬件上加速,包括一个
CPU,
图形处理器(GPU或
专门
TPU Tensor 处理单元)通常
通常使用高性能的 ONNX 运行时.
对于 ultralytics 软件包,将训练好的模型转换为ONNX 格式是一个直截了当的
过程。程序库会自动处理各层与ONNX 标准的复杂映射。以下代码
代码段演示了如何导出 YOLO11 模式,为
为更广泛的部署做好准备。
from ultralytics import YOLO
# Load a pretrained YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to ONNX format
# This creates 'yolo11n.onnx' in the current directory
model.export(format="onnx")
ONNX 的灵活性使其成为现代人工智能基础架构的重要组成部分,特别是在计算机视觉(CV)任务中。 计算机视觉(CV)任务。
了解ONNX 与其他工具的交互方式有助于选择正确的部署策略。
.pt 或
或 Keras 的 .h5 是培训和储蓄的最佳选择
模型权重 在其特定的生态系统中。
不过,它们通常需要安装原始框架才能运行模型。ONNX 将模型与训练框架分离开来
训练框架,从而更容易执行
边缘人工智能 由于存储或内存限制,安装完整的培训
由于存储或内存限制,安装完整的培训库是不切实际的。

