TensorFlow Lite 是一組工具,透過協助開發人員在行動裝置、嵌入式裝置和邊緣裝置上執行模型,進而實現裝置端機器學習。
主要特色
- 針對裝置端機器學習進行最佳化,解決 5 個主要限制:延遲時間 (無需往返伺服器)、隱私權 (個人資料不會離開裝置)、連線能力 (不需要網際網路連線)、大小 (縮減模型和二進位檔大小) 和耗電量 (高效率推論且不需網路連線)。
- 多平台支援,涵蓋 Android 和 iOS 裝置、嵌入式 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 模型,根據輸入資料進行預測的程序。您可以根據模型類型,透過下列方式執行推論
不含中繼資料的模型:使用 TensorFlow Lite Interpreter API。支援多個平台和語言,例如 Java、Swift、C++、Objective-C 和 Python。
含中繼資料的模型:您可以運用 TensorFlow Lite Task Library 使用現成的 API,或使用 TensorFlow Lite Support Library 建構自訂推論管線。在 Android 裝置上,使用者可以使用 Android Studio ML Model Binding 或 TensorFlow Lite Code Generator 自動產生程式碼包裝函式。目前僅支援 Java (Android),Swift (iOS) 和 C++ 仍在開發中。
在 Android 和 iOS 裝置上,您可以使用硬體加速來提升效能。在這兩個平台上,您都可以使用 GPU Delegate;在 Android 上,您可以使用 NNAPI Delegate (適用於較新的裝置) 或 Hexagon Delegate (適用於較舊的裝置);在 iOS 上,您可以使用 Core ML Delegate。如要新增對新硬體加速器的支援,您可以定義自己的委派。
開始使用
您可以參閱下列指南 (根據您的目標裝置而定)
Android 和 iOS:探索 Android 快速入門和iOS 快速入門。
嵌入式 Linux:針對 Raspberry Pi 和 搭載 Edge TPU 的 Coral 裝置等嵌入式裝置,探索Python 快速入門;或者針對 ARM 探索 C++ 建構操作說明。
微控制器:針對僅含少量 KB 記憶體的微控制器和 DSP,探索 TensorFlow Lite for Microcontrollers 程式庫。