TensorFlow Lite 是一套工具,可幫助開發人員在行動裝置、嵌入式裝置和邊緣裝置上執行模型,實現裝置端機器學習技術。
主要功能與特色
- 針對裝置端機器學習進行最佳化,方法是解決以下 5 項主要限制:延遲 (伺服器無需往返存取)、隱私權 (不會帶裝置離開裝置)、連線 (不需要網路連線)、大小 (縮減模型和二進位檔大小) 以及耗電量 (有效率的推論且缺乏網路連線)。
- 支援多種平台,包括 Android 和 iOS 裝置、嵌入式 Linux 和微控制器。
- 支援多種語言,包括 Java、Swift、Objective-C、C++ 和 Python。
- 高效能:可硬體加速和模型最佳化。
開發工作流程
下列指南將逐步說明工作流程的每個步驟,並提供詳細操作說明的連結:
1. 產生 TensorFlow Lite 模型
TensorFlow Lite 模型以 FlatBuffers 這種特殊的高效率可攜式格式表示 (可透過 .tflite 副檔名識別)。相較於 TensorFlow 的通訊協定緩衝區模型格式,這提供了幾項優點,例如大小縮減 (少量程式碼足跡) 和推論速度更快 (資料無需額外剖析/解壓縮步驟即可直接存取),因此 TensorFlow Lite 能在運算和記憶體資源有限的裝置上,有效率地執行。
TensorFlow Lite 模型可以選擇加入含有人類可讀模型說明的中繼資料,以及機器可讀取的資料,以便在裝置端推論期間自動產生預先及後續處理管道。詳情請參閱「新增中繼資料」。
您可以透過下列方式產生 TensorFlow Lite 模型:
使用現有的 TensorFlow Lite 模型:請參閱 TensorFlow Lite 範例來挑選現有模型。模型不一定包含中繼資料。
將 TensorFlow 模型轉換為 TensorFlow Lite 模型:使用 TensorFlow Lite Converter,將 TensorFlow 模型轉換成 TensorFlow Lite 模型。轉換期間,您可以套用最佳化 (例如量化),在不犧牲準確率的前提下,縮減模型大小和延遲時間。根據預設,所有模型都不包含中繼資料。
2. 執行推論
「推論」是指在裝置端執行 TensorFlow Lite 模型,根據輸入資料進行預測的程序。您可以根據模型類型,以下列方式執行推論:
不含中繼資料的模型:使用 TensorFlow Lite Translateer API。支援多種平台和語言,例如 Java、Swift、C++、Objective-C 和 Python。
「具有」中繼資料的模型:您可以使用 TensorFlow Lite 支援資料庫建構自訂推論管道。在 Android 裝置上,使用者可以透過 Android Studio 機器學習模型繫結或 TensorFlow Lite 程式碼產生器自動產生程式碼包裝函式。這項功能僅適用於 Java (Android),Swift (iOS) 和 C++ 仍在開發中。
在 Android 和 iOS 裝置上,您可以使用硬體加速功能提升效能。您可以在任一平台上使用 GPU 代表,在 iOS 上則可使用 Core ML 委派。如要新增硬體加速器的支援,您可以定義自己的委派項目。
開始使用
請根據目標裝置參閱下列指南:
Android 和 iOS:探索 Android 快速入門導覽課程和 iOS 快速入門導覽課程。
內嵌 Linux:探索 Python 快速入門導覽課程 (例如 Raspberry Pi 和 採用 Edge TPU 的 Coral 裝置),或 ARM 的 C++ 建構操作說明。
微控制器:探索 TensorFlow Lite for Microcontrollers 微控制器和 DSP 程式庫,其中只含有幾 KB 的記憶體。
技術限制
- 所有 TensorFlow 模型 無法 轉換為 TensorFlow Lite 模型,請參閱「運算子相容性」一文。