目录

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 秒)

由 Sphinx-Gallery 生成的图库

文档

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

查看文档

教程

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

查看教程

资源

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

查看资源