跳转到主要内容

将PyTorch模型转换为ONNX的实验性工具

项目描述

PyTorch到ONNX导出器

PyPI version

实验性的torch ONNX导出器。与torch>=2.1兼容。

[!WARNING] 这是一个实验性项目,并不适合生产使用。请使用torch.onnx.export来完成这些目的。

安装

pip install --upgrade torch-onnx

用法

import torch
import torch_onnx
from onnxscript import ir
import onnx

# Get an exported program with torch.export
exported = torch.export.export(...)
model = torch_onnx.exported_program_to_ir(exported)
proto = ir.to_proto(model)
onnx.save(proto, "model.onnx")

# Or patch the torch.onnx export API
# Set error_report=True to get a detailed error report if the export fails
torch_onnx.patch_torch(report=True, verify=True, profile=True)
torch.onnx.export(...)

# Use the analysis API to print an analysis report for unsupported ops
torch_onnx.analyze(exported)

设计

{dynamo/jit} -> {ExportedProgram} -> {torchlib} -> {ONNX IR} -> {ONNX}

  • 使用ExportedProgram
    • 依赖于torch.export实现的健壮性
    • 简化导出器的复杂性
    • 这并没有解决dynamo的限制,但它通过运行fx传递避免了引入额外的破坏
  • 平面图;作用域信息作为元数据,而不是函数
    • 因为现有工具不擅长处理这些
  • 适当的地方进行急切优化
    • 因为现有工具不擅长优化
  • torch.onnx.export的替代品
    • 最小的迁移工作量
  • 在导出器中急切地构建图
    • 让导出器完全控制正在构建的图

为什么这可行?

项目详情


发布历史 发布通知 | RSS订阅

下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

torch_onnx-0.1.25.tar.gz (72.8 kB 查看哈希值)

上传时间 源代码

构建分发

torch_onnx-0.1.25-py3-none-any.whl (81.6 kB 查看哈希值)

上传时间 Python 3

由以下机构支持