onnx2tf
一個將 ONNX 檔案轉換為 LiteRT/TFLite/TensorFlow、PyTorch 原生程式碼 (nn.Module)、TorchScript (.pt)、state_dict (.pt)、Exported Program (.pt2) 的工具
onnx2tf 是什麼?
一個將 ONNX 檔案轉換為 LiteRT/TFLite/TensorFlow、PyTorch 原生程式碼 (nn.Module)、TorchScript (.pt)、state_dict (.pt)、Exported Program (.pt2) 及 Dynamo ONNX 的工具。同時支援從 LiteRT 直接轉換為 PyTorch。
onnx2tf 概覽
這是什麼
onnx2tf 是一個將 ONNX 檔案轉換為 LiteRT/TFLite/TensorFlow、PyTorch 原生程式碼 (nn.Module)、TorchScript (.pt)、state_dict (.pt)、Exported Program (.pt2) 以及 Dynamo ONNX 的工具。它也支援從 LiteRT 直接轉換到 PyTorch。該專案託管於 GitHub 上的 PINTO0309/onnx2tf 儲存庫。README 中提到使用者應考慮使用 LiteRT Torch 而非 onnx2tf,並附上 https://github.com/google-ai-edge/litert-torch 和 https://github.com/google-ai-edge/ai-edge-quantizer 的連結。該工具提供兩種執行路徑:tf_converter 和 flatbuffer_direct。flatbuffer_direct 是目前預設的後端,被描述為更快且對支援的直接轉換有更高的成功率。預設情況下,最簡單的轉換指令只輸出 LiteRT 模型,但加上 --flatbuffer_direct_output_saved_model 後也會輸出一個從 LiteRT 端 ModelIR 建構的 saved_model。tf_converter 路徑支援大量 ONNX 運算子,如 README 表格所列。運算子以 :heavy_check_mark: 標示為完整支援,:white_check_mark: 標示為部分支援。該工具採用 MIT 授權,為開源軟體。
主要功能
- 將 ONNX 檔案轉換為多種目標格式:LiteRT/TFLite/TensorFlow、PyTorch 原生程式碼 (nn.Module)、TorchScript (.pt)、state_dict (.pt)、Exported Program (.pt2) 以及 Dynamo ONNX。
- 支援從 LiteRT 直接轉換到 PyTorch。
- 提供兩種執行後端:
tf_converter(舊版)和flatbuffer_direct(預設,更快,成功率更高)。 - 支援廣泛的 ONNX 運算子清單,大部分完整支援,部分為部分支援。
- 使用
flatbuffer_direct並加上適當旗標時,可額外輸出 saved_model。
使用情境
- 將 ONNX 模型轉換以部署於邊緣裝置(使用 LiteRT/TFLite)。
- 將 ONNX 模型移植到 PyTorch,以便在 PyTorch 環境中進行進一步訓練或推論。
- 從 ONNX 產生 TorchScript 或 state_dict 檔案,用於 PyTorch 工作流程。
- 在不同框架之間轉換模型(ONNX 到 TensorFlow、ONNX 到 PyTorch、LiteRT 到 PyTorch)。
快速開始
請參閱儲存庫的 README 以取得安裝與使用說明。
授權與價格
本專案採用 MIT 授權,為開源軟體。未提及價格資訊。
內容整理自該專案公開的 README 與儲存庫資訊。