Android 適用的 TensorFlow Lite

TensorFlow Lite 可讓您在 Android 應用程式中執行 TensorFlow 機器學習 (ML) 模型。TensorFlow Lite 系統提供預先建構和可自訂的執行環境,可在 Android 上快速有效率地執行模型,包括硬體加速選項。

機器學習模型

TensorFlow Lite 採用 TensorFlow 模型,轉換為更易於攜帶、更有效率的機器學習模型格式。您可以在 Android 裝置上搭配 TensorFlow Lite 使用預先建構的模型,也可以自行建構 TensorFlow 模型,然後轉換為 TensorFlow Lite 格式。

本頁面討論如何使用已經建立的機器學習模型,但不涵蓋建構、訓練、測試或轉換模型的內容。如要進一步瞭解如何選取、修改、建構及轉換 TensorFlow Lite 適用的機器學習模型,請參閱模型頁面。

在 Android 上執行模型

在 Android 應用程式內執行的 TensorFlow Lite 模型會接收資料、處理資料,並根據模型邏輯產生預測結果。TensorFlow Lite 模型需要特殊的執行階段環境才能執行,而且傳遞至模型的資料必須採用稱為「張量的特定資料格式。模型在處理資料時 (稱為執行「推論」),會以新的張量形式產生預測結果,並將這些結果傳遞至 Android 應用程式,以便採取行動,例如向使用者顯示結果或執行其他商業邏輯。

Android 應用程式中 TensorFlow Lite 模型的功能執行流程

圖 1 Android 應用程式中 TensorFlow Lite 模型的功能執行流程。

在功能性設計層級,Android 應用程式需要下列元素才能執行 TensorFlow Lite 模型:

  • 用於執行模型的 TensorFlow Lite 執行階段環境
  • 模型輸入處理常式,可將資料轉換為張量
  • 模型輸出處理常式,用於接收輸出結果張量,並將其解讀為預測結果

以下各節說明 TensorFlow Lite 程式庫和工具如何提供這些功能元素。

使用 TensorFlow Lite 建構應用程式

本節說明在 Android 應用程式中實作 TensorFlow Lite 時建議採用的最常見路徑。請特別留意「執行階段環境」和「開發程式庫」一節。如果您已開發自訂模型,請務必查看進階開發路徑一節。

執行階段環境選項

您可以透過多種方式啟用執行階段環境,在 Android 應用程式中執行模型。建議做法如下:

一般來說,建議您使用 Google Play 服務提供的執行階段環境,因為這個環境會動態載入,比標準環境更有效率,進而縮減應用程式大小。Google Play 服務也會自動使用 TensorFlow Lite 執行階段的最新穩定版本,為您提供其他功能並提升效能。如果您在不含 Google Play 服務的裝置中提供應用程式,或您必須密切管理機器學習執行階段環境,請使用標準 TensorFlow Lite 執行階段。這個選項會將其他程式碼封裝至應用程式中,讓您進一步控制應用程式中的機器學習執行階段,但這會導致應用程式的下載大小增加。

將 TensorFlow Lite 開發程式庫新增至應用程式開發環境,即可在 Android 應用程式中存取這些執行階段環境。如要瞭解如何在應用程式中使用標準執行階段環境,請參閱下一節。

程式庫

您可以透過 Google Play 服務存取 翻譯工具 API。您可以在 Android 應用程式中使用 TensorFlow Lite 核心支援程式庫。如需關於使用 TensorFlow Lite 程式庫和執行階段環境的程式設計詳細資訊,請參閱「Android 開發工具」。

取得模型

在 Android 應用程式中執行模型需要 TensorFlow Lite 格式模型。您可以使用預先建構的模型,或運用 TensorFlow 建構模型,然後轉換為 Lite 格式。如要進一步瞭解如何取得 Android 應用程式的模型,請參閱 TensorFlow Lite 模型頁面。

處理輸入資料

您傳入機器學習模型的任何資料都必須是具有特定資料結構的張量,通常稱為 Tensor 的「形狀」。如要使用模型處理資料,應用程式程式碼必須將原生格式 (例如圖片、文字或音訊資料) 的資料轉換為符合模型所需形狀的張量。

執行推論

透過模型處理資料來產生預測結果,稱為執行「推論」。在 Android 應用程式中執行推論需要 TensorFlow Lite 執行階段環境model輸入資料

模型在特定裝置上產生推論的速度,取決於處理的資料大小、模型的複雜程度,以及可用運算資源 (例如記憶體和 CPU),或是特殊處理器 (稱為「加速器」)。機器學習模型可以在這些特殊處理器 (例如圖形處理器 (GPU) 與張量處理器 (TPU) 上,使用稱為委派的 TensorFlow Lite 硬體驅動程式,加快執行速度。如要進一步瞭解模型處理作業的委派和硬體加速功能,請參閱硬體加速總覽

處理輸出結果

模型會以張量的形式產生預測結果,而 Android 應用程式必須透過操作或向使用者顯示結果來處理這些結果。模型輸出結果可以是簡單的數字,例如用於圖片分類的單一結果 (0 = dog,1 = cat, 2 = bird) 的數字,或是較複雜的結果,例如圖片中數個分類物件的多個定界框,預測的可信度評分介於 0 和 1 之間。

進階開發路徑

使用更複雜且自訂的 TensorFlow Lite 模型時,您可能需要使用比上述更進階的開發方法。以下各節說明在 Android 應用程式中執行模型,並為 TensorFlow Lite 開發模型的進階技巧。

進階執行階段環境

除了 TensorFlow Lite 的標準執行階段和 Google Play 服務執行階段環境,Android 應用程式還可使用其他執行階段環境。最有可能用於這些環境的機器學習模型,就是使用 TensorFlow Lite 標準執行階段環境不支援的機器學習作業。

TensorFlow Lite Flex 執行階段可讓您加入模型所需的特定運算子。做為執行模型的進階方式,您可以建構適用於 Android 的 TensorFlow Lite,加入執行 TensorFlow 機器學習模型所需的運算子和其他功能。詳情請參閱「建構 Android 適用的 TensorFlow Lite」一文。

C 和 C++ API

TensorFlow Lite 也提供使用 C 和 C++ 執行模型的 API。如果您的應用程式使用 Android NDK,建議您考慮使用這個 API。如果您希望在多個平台之間共用程式碼,建議您也使用這個 API。如要進一步瞭解這個開發選項,請參閱「開發工具」頁面。

執行伺服器模型

一般來說,建議您在 Android 裝置上執行模型,盡可能降低延遲時間並提高使用者的資料隱私防護。但是,在某些情況下,在雲端伺服器 (裝置外) 上執行模型可能會是更好的解決方案。舉例來說,如果您的大型模型無法輕易壓縮到適合使用者 Android 裝置的大小,或在這類裝置上執行合理的效能,如果模型在各種裝置上的效能維持一致,那麼此方法也是您的首選解決方案。

Google Cloud 提供完整的服務套件,可用於執行 TensorFlow 機器學習模型。詳情請參閱 Google Cloud 的「AI 和機器學習產品」頁面。

自訂模型開發與最佳化

更進階的開發路徑可能包括開發自訂機器學習模型,以及最佳化這些模型,以便在 Android 裝置上使用。如果您打算建構自訂模型,請務必考慮在模型中應用量化技術,以降低記憶體和處理成本。如要進一步瞭解如何建構高效能模型來與 TensorFlow Lite 搭配使用,請參閱「模型」部分中的「效能最佳做法」一節。