注意
跳轉到結尾 下載完整的示例程式碼。
ONNX 簡介 || 將 PyTorch 模型匯出為 ONNX || 擴充套件 ONNX 匯出器的運算元支援 || 將包含控制流的模型匯出為 ONNX
ONNX 簡介#
創建於:2023年10月04日 | 最後更新:2025年07月11日 | 最後驗證:2024年11月05日
作者:Ti-Tai Wang, Thiago Crepaldi。
Open Neural Network eXchange (ONNX) 是一種表示機器學習模型的開放標準格式。 torch.onnx 模組提供了 API 來捕獲原生 PyTorch torch.nn.Module 模型的計算圖,並將其轉換為 ONNX 圖。
匯出的模型可以被許多支援 ONNX 的 執行時 使用,包括 Microsoft 的 ONNX Runtime。
當設定 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 匯出器所有知識的樂趣。