模型轉換總覽

您搭配 LiteRT 使用的機器學習 (ML) 模型 建構並訓練而成建立好的 使用 TensorFlow Core 擴充模型 這種高效率的機器學習模型格式 稱為 LiteRT 模型 本節將提供轉換指引 將 TensorFlow 模型轉換為 LiteRT 模型格式

轉換工作流程

將 TensorFlow 模型轉換為 LiteRT 格式可能有幾種路徑 執行這些動作這個程序的第一步 請評估模型是否能直接轉換 此評估會決定模型的內容是否支援模型的內容 根據 TensorFlow 作業建構的標準 LiteRT 執行階段環境 所用資源如果模型使用的作業不在支援集內, 重構模型或使用進階轉換技巧。

下圖顯示轉換模型的高階步驟。

TFLite 轉換工作流程

圖 1. LiteRT 轉換工作流程。

以下各節將概述評估及轉換模型的程序 可與 LiteRT 搭配使用

輸入模型格式

您可以將轉換工具與下列輸入模型格式搭配使用:

您可以同時將 Keras 和具體函式模型儲存為 module 並利用修正的路徑進行轉換

如果您使用 Jax 模型,則可以使用 TFLiteConverter.experimental_from_jax ,將該格式轉換為 LiteRT 格式。請注意,這個 API 必須符合 並做出變更

轉換評估

嘗試轉換模型之前,請務必先評估模型。 評估時 您要判斷模型的內容是否與 LiteRT 格式。此外,你也需要判斷自己的模型是否適合 在行動裝置和邊緣裝置上,模型會根據模型使用的資料大小 硬體處理需求,以及模型的整體大小 變得複雜

針對許多模型,轉換器應可立即使用。不過 LiteRT 內建運算子程式庫支援部分 TensorFlow 核心運算子,這代表某些模型可能需要額外的 才轉換為 LiteRT 此外, LiteRT 支援的部分作業也為 基於效能考量而受限的使用規範詳情請參閱 「運算子相容性」指南 判斷是否需要重構模式才能進行轉換

模型轉換

LiteRT 轉換工具會採用 TensorFlow 模型,並產生 LiteRT 模型 (經過最佳化調整的 FlatBuffer 格式,這是由 .tflite 副檔名)。您可以載入 可以直接轉換您在程式碼中建立的模型,或直接轉換這些模型。

轉換工具使用 3 個自訂轉換的主要標記 (或選項) 建立模型:

  1. 相容性標記可讓您指定 轉換是否應允許使用自訂運算子。
  2. 最佳化旗標可讓您 指定要套用的最佳化類型 貢獻的時間。最常用的最佳化技術是 訓練後的量化
  3. 中繼資料標記可讓您將中繼資料新增至轉換後的模型 這樣就能更輕鬆地在部署時建立平台專用的包裝函式程式碼 打造優質的 AI 開發原則

你可以使用 Python API 轉換模型,或是 指令列工具。詳情請參閱 轉換 TF 模型指南的逐步操作說明 瞭解如何在模型上執行轉換器的操作說明。

一般來說,您會轉換標準 LiteRT 的模型 執行階段環境」或 Google Play 服務執行階段環境 適用於 LiteRT (Beta 版)。有些進階用途需要 自訂模型執行階段環境,需要執行額外的步驟 轉換程序詳情請參閱 進階執行階段環境一節 總覽。

進階轉換

如果遇到錯誤 在模型上執行轉換器時 運算子相容性問題。並非所有 TensorFlow 作業 (由 TensorFlow 支援) 精簡如要解決這些問題,您可以重構模型,或使用 進階轉換選項,可讓您建立修改後的 LiteRT 以及該模型的自訂執行階段環境

  • 請參閱「模型相容性總覽」一文 ,進一步瞭解 TensorFlow 和 LiteRT 模型相容性 考量重點
  • 「模型相容性總覽」中的主題涵蓋進階技術, 重構模型,例如「選取運算子」 指南。
  • 如需完整的作業和限制清單,請參閱 LiteRT Ops 頁面

後續步驟