目录

ONNX简介 || 将PyTorch模型导出到ONNX || 扩展ONNX注册表

ONNX简介

创建日期: 2023年10月4日 | 最后更新日期: 2024年9月5日 | 最后验证日期: 2024年11月5日

作者: 蒂亚戈·克雷帕尔迪

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

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

注意

目前,有两类ONNX导出API, 但本教程将专注于torch.onnx.dynamo_export

TorchDynamo 引擎被用来钩入 Python 的帧评估 API,并动态地将其字节码重写为 FX 图。 生成的 FX 图在最终转换为 ONNX 图 之前进行了优化。

这种方法的主要优势在于,FX图是通过字节码分析捕获的,这种方式保留了模型的动态特性,而不是使用传统的静态跟踪技术。

依赖项

需要 PyTorch 2.1.0 或更高版本。

ONNX导出器依赖于额外的Python包:

  • ONNX standard library

  • ONNX Script library that enables developers to author ONNX operators, functions and models using a subset of Python in an expressive, and yet simple fashion

  • ONNX Runtime accelerated machine learning library.

它们可以通过 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__)

每个import必须成功运行且不出现任何错误,并且库版本必须被打印出来。

进一步阅读

以下列表涵盖了从基础示例到高级场景的各种教程,不一定按照列出的顺序。 您可以直接跳转到感兴趣的特定主题, 或者慢慢来,尽情浏览所有内容,深入了解ONNX导出器的相关知识。

脚本的总运行时间: ( 0 分钟 0.000 秒)

通过 Sphinx-Gallery 生成的画廊

文档

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

查看文档

教程

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

查看教程

资源

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

查看资源