注意
點擊這裡下載完整的範例程式碼
ONNX 介紹 || 將 PyTorch 模型匯出到 ONNX || 擴充 ONNX 註冊表
ONNX 介紹¶
建立於:2023 年 10 月 04 日 | 最後更新:2025 年 1 月 27 日 | 最後驗證:2024 年 11 月 05 日
作者:Ti-Tai Wang 和 Xavier 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 秒)