捷徑

ONNX 介紹 || 將 PyTorch 模型匯出到 ONNX || 擴充 ONNX 註冊表

ONNX 介紹

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

作者:Ti-Tai WangXavier Dupré

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

匯出的模型可以被許多 支援 ONNX 的運行時環境 使用,包括 Microsoft 的 ONNX Runtime

注意

目前,有兩種 ONNX 匯出器 API,但本教學課程將重點介紹 torch.onnx.dynamo_export

TorchDynamo 引擎用於掛鉤到 Python 的框架評估 API,並將其位元組碼動態重寫為 FX 圖。 最終的 FX 圖經過潤飾,然後最終轉換為 ONNX 圖

這種方法的主要優點是 FX 圖 是使用位元組碼分析捕獲的,該分析保留了模型的動態特性,而不是使用傳統的靜態追蹤技術。

相依性

需要 PyTorch 2.1.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__)

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 的完整開發人員文件

檢視文件

教學

取得初學者和進階開發人員的深入教學課程

檢視教學

資源

尋找開發資源並獲得您問題的解答

檢視資源