注意
點選此處下載完整示例程式碼
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 秒)