# torch.onnx > 原文:[`pytorch.org/docs/stable/onnx.html`](https://pytorch.org/docs/stable/onnx.html) ## 概述 [Open Neural Network eXchange (ONNX)](https://onnx.ai/) 是表示机器学习模型的开放标准格式。`torch.onnx` 模块从本机 PyTorch `torch.nn.Module` 模型中捕获计算图,并将其转换为 [ONNX 图](https://github.com/onnx/onnx/blob/main/docs/IR.md)。 导出的模型可以被支持 ONNX 的许多 [运行时](https://onnx.ai/supported-tools.html#deployModel) 使用,包括微软的 [ONNX Runtime](https://www.onnxruntime.ai)。 **您可以使用以下两种 ONNX 导出器 API:** ## 基于 TorchDynamo 的 ONNX 导出器[](#torchdynamo-based-onnx-exporter "跳转到此标题") *基于 TorchDynamo 的 ONNX 导出器是 PyTorch 2.0 及更新版本的最新(Beta)导出器* TorchDynamo 引擎被用来钩入 Python 的帧评估 API 并动态重写其字节码为 FX 图。然后,生成的 FX 图在最终转换为 ONNX 图之前被优化。 这种方法的主要优势在于,[FX 图](https://pytorch.org/docs/stable/fx.html) 是通过保留模型的动态特性而不是使用传统的静态追踪技术来捕获的。 了解基于 TorchDynamo 的 ONNX 导出器 ## 基于 TorchScript 的 ONNX 导出器[](#torchscript-based-onnx-exporter "跳转到此标题") *基于 TorchScript 的 ONNX 导出器自 PyTorch 1.2.0 起可用* [TorchScript](https://pytorch.org/docs/stable/jit.html) 被利用来追踪(通过 `torch.jit.trace()`)模型并捕获静态计算图。 因此,生成的图有一些限制: + 它不记录任何控制流,比如 if 语句或循环; + 不处理 `training` 和 `eval` 模式之间的细微差别; + 不真正处理动态输入 为了支持静态追踪的限制,导出器还支持 TorchScript 脚本化(通过 `torch.jit.script()`),这增加了对数据相关控制流的支持,例如。然而,TorchScript 本身是 Python 语言的一个子集,因此并不支持 Python 中的所有功能,比如原地操作。 了解基于 TorchScript 的 ONNX 导出器 ## 贡献 / 开发 ONNX 导出器是一个社区项目,我们欢迎贡献。我们遵循 [PyTorch 的贡献指南](https://github.com/pytorch/pytorch/blob/main/CONTRIBUTING.md),但您可能也对阅读我们的 [开发维基](https://github.com/pytorch/pytorch/wiki/PyTorch-ONNX-exporter)感兴趣。