評價此頁

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 匯出器所有知識的樂趣。