• 教程 >
  • ONNX 简介
快捷键

ONNX 简介 || 将 PyTorch 模型导出为 ONNX || 扩展 ONNX 导出器操作符支持 || 将具有控制流的模型导出为 ONNX

ONNX 简介 ¶

创建于:2025 年 4 月 1 日 | 最后更新:2025 年 4 月 1 日 | 最后验证:2024 年 11 月 5 日

作者:王铁台,Thiago Crepaldi。

开放神经网络交换(ONNX)是一种用于表示机器学习模型的开放标准格式。 torch.onnx 模块提供了 API,用于从原生 PyTorch torch.nn.Module 模型捕获计算图并将其转换为 ONNX 图。

导出的模型可以被任何支持 ONNX 的许多运行时消费,包括微软的 ONNX 运行时。

备注

目前,您可以通过`TorchScript https://maskerprc.github.io/docs/stable/jit.html`_或`ExportedProgram https://maskerprc.github.io/docs/stable/export.html`_通过 torch.onnx.export 中的布尔参数 dynamo 将模型导出到 ONNX。在本教程中,我们将重点关注 ExportedProgram 方法。

当设置 dynamo=True 时,导出器将使用 torch.export 捕获 ExportedProgram ,然后将图转换为 ONNX 表示。这种方法是导出模型到 ONNX 的新推荐方式。它与 PyTorch 2.0 功能更稳健地工作,对新的 ONNX 运算符集支持更好,并且消耗更少的资源,使得导出更大的模型成为可能。

依赖项

需要 2.5.0 或更高版本的 PyTorch。

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

  • ONNX 标准库

  • ONNX 脚本库,允许开发者使用 Python 子集以表达性和简单的方式编写 ONNX 算子、函数和模型

  • ONNX 运行时加速机器学习库。

它们可以通过 pip 安装:

pip install --upgrade onnx onnxscript onnxruntime

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

import torch
print(torch.__version__)

import onnxscript
print(onnxscript.__version__)

import onnxruntime
print(onnxruntime.__version__)

每个导入必须成功且不能出现任何错误,并且必须打印出库版本。

进一步阅读 ¶

以下列表涉及从基本示例到高级场景的教程,不一定按照列表顺序排列。您可以自由地直接跳转到您感兴趣的具体主题,或者耐心地逐一浏览,以了解有关 ONNX 导出器的所有内容。

1. 将 PyTorch 模型导出到 ONNX
2. 扩展 ONNX 导出器操作符支持
3. 将具有控制流的模型导出到 ONNX

脚本总运行时间:(0 分钟 0.000 秒)

由 Sphinx-Gallery 生成的画廊


评分这个教程

© 版权所有 2024,PyTorch。

使用 Sphinx 构建,主题由 Read the Docs 提供。
//暂时添加调查链接

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

获取初学者和高级开发者的深入教程

查看教程

资源

查找开发资源并获得您的疑问解答

查看资源