注意
单击此处下载完整的示例代码
ONNX 简介 ||将 PyTorch 模型导出到 ONNX ||扩展 ONNX 注册表
ONNX 简介¶
创建时间: Oct 04, 2023 |上次更新时间: 2024-9-05 |上次验证: Nov 05, 2024
作者: Thiago Crepaldi,
Open Neural Network eXchange (ONNX) 是一种开放标准
格式来表示机器学习模型。该模块提供 API 以
从原生 PyTorch 模型捕获计算图并转换
它转换为 ONNX 图。
torch.onnx
导出的模型可以由支持 ONNX 的众多运行时中的任何一个使用。 包括 Microsoft 的 ONNX 运行时。
注意
目前,有两种风格的 ONNX 导出器 API,
但本教程将重点介绍 .torch.onnx.dynamo_export
TorchDynamo 引擎被用来挂接到 Python 的帧评估 API 中,并动态地重写其 bytecode 转换为 FX 图。 生成的 FX Graph 在最终转换为 ONNX Graph 之前经过优化。
这种方法的主要优点是 FX 图表是使用 字节码分析,它保留了模型的动态性质,而不是使用传统的静态跟踪技术。
依赖¶
需要 PyTorch 2.1.0 或更高版本。
ONNX 导出器依赖于额外的 Python 包:
ONNX 标准库
ONNX 脚本库,使开发人员能够编写 ONNX 运算符、 函数和模型以富有表现力但简单的方式使用 Python 的子集
ONNX Runtime 加速机器学习库。
它们可以通过 pip 安装:
pip install --upgrade onnx onnxscript onnxruntime
要验证安装,请运行以下命令:
import torch
print(torch.__version__)
import onnxscript
print(onnxscript.__version__)
from onnxscript import opset18 # opset 18 is the latest (and only) supported version for now
import onnxruntime
print(onnxruntime.__version__)
每次导入都必须成功且没有任何错误,并且必须打印出库版本。
延伸阅读¶
下面的列表引用了从基本示例到高级场景的教程。 不一定按照它们列出的顺序。 请随意直接跳转到您感兴趣的特定主题或 坐下来,尽情享受所有这些内容,以了解有关 ONNX 导出器的所有信息。
脚本总运行时间:(0 分 0.000 秒)