评价此页

ONNX 简介 || 将 PyTorch 模型导出为 ONNX || 扩展 ONNX 导出器的算子支持 || 将包含控制流的模型导出为 ONNX

ONNX 简介#

创建于:2023年10月04日 | 最后更新:2025年07月11日 | 最后验证:2024年11月05日

作者:Ti-Tai Wang, Thiago Crepaldi

Open Neural Network eXchange (ONNX) 是一种表示机器学习模型的开放标准格式。 torch.onnx 模块提供了 API 来捕获原生 PyTorch torch.nn.Module 模型的计算图,并将其转换为 ONNX 图

导出的模型可以被许多支持 ONNX 的 运行时 使用,包括 Microsoft 的 ONNX Runtime

当设置 dynamo=True 时,导出器将使用 torch.export 来捕获 ExportedProgram,然后再将图转换为 ONNX 表示。这种方法是导出模型到 ONNX 的新推荐方式。它能更稳健地支持 PyTorch 2.0 的特性,对较新的 ONNX 算子集有更好的支持,并且消耗的资源更少,从而能够导出更大的模型。

依赖项#

需要 PyTorch 2.5.0 或更新版本。

ONNX 导出器依赖于额外的 Python 包

  • ONNX 标准库

  • ONNX Script 库,它使开发者能够使用一个简化的 Python 子集以一种富有表现力但又简单的方式来编写 ONNX 算子、函数和模型。

  • ONNX Runtime 加速机器学习库。

可以通过 pip 安装它们。

pip install --upgrade onnx onnxscript onnxruntime

要验证安装,请运行以下命令

import torch
print(torch.__version__)

import onnxscript
print(onnxscript.__version__)

import onnxruntime
print(onnxruntime.__version__)

每个 import 都必须成功执行且不出现任何错误,并且会打印出库版本。

延伸阅读#

下面的列表引用了从基本示例到高级场景的教程,不一定按列出的顺序。您可以随时跳转到您感兴趣的特定主题,或者坐下来,享受学习 ONNX 导出器所有知识的乐趣。