PyTorch 入门指南
学习 PyTorch
图像和视频
音频
后端
强化学习
在生产环境中部署 PyTorch 模型
Profiling PyTorch
代码变换与FX
前端API
扩展 PyTorch
模型优化
并行和分布式训练
边缘端的 ExecuTorch
推荐系统
多模态

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

ONNX 简介

作者: Ti-Tai Wang, Thiago Crepaldi.

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

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

目前,您可以通过布尔参数 dynamotorch.onnx.export 中选择使用 `TorchScript https://pytorch.org/docs/stable/jit.html`_`ExportedProgram https://pytorch.org/docs/stable/export.html`_ 将模型导出到 ONNX。在本教程中,我们将重点介绍 ExportedProgram 方法。

当设置 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 安装:

pipinstall--upgradeonnxonnxscriptonnxruntime

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

importtorch
print(torch.__version__)

importonnxscript
print(onnxscript.__version__)

importonnxruntime
print(onnxruntime.__version__)

每次导入必须成功且无任何错误,同时必须打印出库的版本信息。

延伸阅读

以下列表涵盖了从基础示例到高级场景的教程,这些教程并不一定按照列出的顺序排列。您可以直接跳转到您感兴趣的特定主题,或者静下心来,逐一浏览,全面了解 ONNX 导出器的所有内容。

本页目录