目录

torch.onnx

概述

Open Neural Network eXchange (ONNX) 是一种开放标准 格式来表示机器学习模型。该模块从 native PyTorch 模型并将其转换为 ONNX 图torch.onnx

导出的模型可以由支持 ONNX 的许多运行时中的任何一个使用,包括 Microsoft 的 ONNX 运行时

您可以使用两种风格的 ONNX 导出器 API,如下所示:

基于 TorchDynamo 的 ONNX 导出器

基于 TorchDynamo 的 ONNX 导出器是 PyTorch 2.0 及更高版本的最新(和 Beta 版)导出器

TorchDynamo 引擎被用来挂接到 Python 的帧评估 API 中,并动态地重写其 字节码转换为 FX Graph 中。然后,在最终将其转换为 ONNX 图。

这种方法的主要优点是 FX 图表是使用 字节码分析,它保留了模型的动态性质,而不是使用传统的静态跟踪技术。

了解有关基于 TorchDynamo 的 ONNX 导出器的更多信息

基于 TorchScript 的 ONNX 导出器

基于 TorchScript 的 ONNX 导出器从 PyTorch 1.2.0 开始可用

利用 TorchScript 来跟踪(通过 ) 模型并捕获静态计算图。

因此,生成的图形有几个限制:

  • 它不记录任何控制流,如 if 语句或循环;

  • 不处理 和 模式之间的细微差别;trainingeval

  • 不能真正处理动态输入

为了支持静态跟踪限制,导出器还支持 TorchScript 脚本 (通过 ),例如,它增加了对数据依赖型 control-flow 的支持。但是,TorchScript 本身是 Python 语言的子集,因此并非支持 Python 中的所有功能,例如就地操作。

了解有关基于 TorchScript 的 ONNX 导出器的更多信息

贡献 / 开发

ONNX 导出器是一个社区项目,我们欢迎贡献。我们遵循 PyTorch 的贡献指南,但你可以 也有兴趣阅读我们的开发 wiki

文档

访问 PyTorch 的全面开发人员文档

查看文档

教程

获取面向初学者和高级开发人员的深入教程

查看教程

资源

查找开发资源并解答您的问题

查看资源