快捷方式

ONNX 簡介 || 將 PyTorch 模型匯出到 ONNX || 擴充套件 ONNX 匯出器運算元支援 || 將帶有控制流的模型匯出到 ONNX

ONNX 簡介

建立日期:2023 年 10 月 04 日 | 最後更新:2025 年 03 月 05 日 | 最後驗證:2024 年 11 月 05 日

作者:Ti-Tai Wang, Thiago Crepaldi

開放神經網路交換 (ONNX) 是一種用於表示機器學習模型的開放標準格式。torch.onnx 模組提供了 API,用於從原生 PyTorch torch.nn.Module 模型中捕獲計算圖並將其轉換為 ONNX 圖

匯出的模型可以被許多支援 ONNX 的執行時中的任何一個使用,包括微軟的 ONNX Runtime

注意

目前,您可以透過 `TorchScript https://pytorch.com.tw/docs/stable/jit.html`_`ExportedProgram https://pytorch.com.tw/docs/stable/export.html`_ 來選擇將模型匯出到 ONNX,透過 torch.onnx.export 中的布林引數 dynamo 進行控制。在本教程中,我們將重點介紹 ExportedProgram 方法。

當設定 dynamo=True 時,匯出器將使用 torch.export 捕獲一個 ExportedProgram,然後將圖轉換為 ONNX 表示。這種方法是將模型匯出到 ONNX 的新推薦方式。它與 PyTorch 2.0 特性配合更穩健,對較新的 ONNX 運算元集有更好的支援,並且消耗的資源更少,使得匯出大型模型成為可能。

依賴項

需要 PyTorch 2.5.0 或更新版本。

ONNX 匯出器依賴於額外的 Python 包

  • ONNX 標準庫

  • ONNX Script 庫,使開發者能夠以富有表現力且簡單的方式使用 Python 子集編寫 ONNX 運算元、函式和模型

  • ONNX Runtime 加速機器學習庫。

可以透過 pip 安裝它們

pip install --upgrade onnx onnxscript onnxruntime

要驗證安裝,請執行以下命令

import torch
print(torch.__version__)

import onnxscript
print(onnxscript.__version__)

import onnxruntime
print(onnxruntime.__version__)

每個 import 都必須成功且不出現任何錯誤,並且必須打印出庫版本。

延伸閱讀

以下列表包含從基本示例到高階場景的教程,不一定按列出的順序排列。請隨意直接跳到您感興趣的特定主題,或者耐心仔細地學習所有教程,掌握 ONNX 匯出器的所有知識。

指令碼總執行時間: ( 0 分鐘 0.000 秒)

由 Sphinx-Gallery 生成的畫廊

文件

訪問 PyTorch 的綜合開發者文件

檢視文件

教程

獲取面向初學者和高階開發者的深入教程

檢視教程

資源

查詢開發資源並獲得解答

檢視資源