TensorFlow Lite

TensorFlow Lite 是一組工具,透過協助開發人員在行動裝置、嵌入式裝置和邊緣裝置上執行模型,進而實現裝置端機器學習。

主要特色

  • 針對裝置端機器學習進行最佳化,解決 5 個主要限制:延遲時間 (無需往返伺服器)、隱私權 (個人資料不會離開裝置)、連線能力 (不需要網際網路連線)、大小 (縮減模型和二進位檔大小) 和耗電量 (高效率推論且不需網路連線)。
  • 多平台支援,涵蓋 AndroidiOS 裝置、嵌入式 Linux微控制器
  • 多元語言支援,包括 Java、Swift、Objective-C、C++ 和 Python。
  • 高效能,具備硬體加速模型最佳化
  • 端對端範例,適用於常見的機器學習任務,例如影像分類、物件偵測、姿勢估計、問題回答、文字分類等,且可在多個平台上執行。

開發工作流程

以下指南將逐步說明工作流程的每個步驟,並提供深入說明的連結

1. 產生 TensorFlow Lite 模型

TensorFlow Lite 模型以特殊的效率可攜式格式 FlatBuffers (以 .tflite 副檔名識別) 表示。相較於 TensorFlow 的 Protocol Buffer 模型格式,這項格式提供多項優勢,例如縮減大小 (程式碼佔用空間小) 和加快推論速度 (直接存取資料,無需額外的剖析/解壓縮步驟),讓 TensorFlow Lite 能夠在運算和記憶體資源有限的裝置上有效率地執行。

TensorFlow Lite 模型可以選擇性地包含中繼資料,其中包含人類可讀的模型說明和機器可讀的資料,以便在裝置端推論期間自動產生預先處理和後續處理管線。詳情請參閱新增中繼資料

您可以使用下列方式產生 TensorFlow Lite 模型

  • 使用現有的 TensorFlow Lite 模型:請參閱 TensorFlow Lite 範例以挑選現有的模型。模型可能包含或不包含中繼資料。

  • 建立 TensorFlow Lite 模型:使用 TensorFlow Lite Model Maker,利用您自己的自訂資料集建立模型。根據預設,所有模型都包含中繼資料。

  • 將 TensorFlow 模型轉換為 TensorFlow Lite 模型:使用 TensorFlow Lite Converter 將 TensorFlow 模型轉換為 TensorFlow Lite 模型。在轉換期間,您可以套用最佳化,例如量化,以縮減模型大小和延遲時間,且準確度只會降低極少或完全不會降低。根據預設,所有模型都不包含中繼資料。

2. 執行推論

推論是指在裝置端執行 TensorFlow Lite 模型,根據輸入資料進行預測的程序。您可以根據模型類型,透過下列方式執行推論

在 Android 和 iOS 裝置上,您可以使用硬體加速來提升效能。在這兩個平台上,您都可以使用 GPU Delegate;在 Android 上,您可以使用 NNAPI Delegate (適用於較新的裝置) 或 Hexagon Delegate (適用於較舊的裝置);在 iOS 上,您可以使用 Core ML Delegate。如要新增對新硬體加速器的支援,您可以定義自己的委派

開始使用

您可以參閱下列指南 (根據您的目標裝置而定)

技術限制

  • 並非所有 TensorFlow 模型能轉換為 TensorFlow Lite 模型,請參閱運算子相容性

  • 不支援裝置端訓練,但這已列入我們的藍圖