TensorFlow Lite 提供多項工具,協助開發人員透過行動裝置、嵌入式裝置和 IoT 裝置執行模型,在裝置端即可完成機器學習。
主要功能與特色
- 適合用來在裝置端執行機器學習,因為能突破 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 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 工作程式庫運用立即可用的 API,或使用 TensorFlow Lite 支援資料庫建立自訂推論管線。 使用者可在 Android 裝置上使用 Android Studio 機器學習模型繫結或 TensorFlow Lite 程式碼產生器,自動產生程式碼包裝函式。 此功能目前僅支援 Java (Android),Swift (iOS) 版和 C++ 版仍在開發中。
您可在 Android 和 iOS 裝置上使用硬體加速功能提升效能。在這兩種平台上均可使用 GPU 委任;在 Android 上可使用 NNAPI 委任 (較新版裝置) 或 Hexagon 委任 (較舊版裝置);在 iOS 上可使用 Core ML 委任。如要額外支援新硬體加速器,您可以定義自己的委任。
開始使用
請依照您的目標裝置參閱下列指南:
Android 和 iOS:探索 Android 快速入門導覽課程和 iOS 快速入門導覽課程。
嵌入式 Linux:探索 Python 快速入門導覽課程,瞭解如何運用 Raspberry Pi 和採用 Edge TPU 的 Coral 裝置等嵌入式裝置,或參閱 ARM 的 C++ 建構指示。
微控制器:探索 TensorFlow Lite for Microcontrollers 微控制器和 DSP 程式庫,其中包含的記憶體大小只有幾 KB。