评价此页

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的 运行时 使用,包括微软的 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导出器的一切。