TensorFlow Lite for Microcontrollers

TensorFlow Lite for Microcontrollers 專門用於在微控制器和其他裝置上執行機器學習模型,只需要少量 KB 的記憶體。使用 Arm Cortex M3 的核心執行階段大小為 16 KB,可以執行許多基本模型。不需要作業系統支援、標準 C 或 C++ 程式庫或動態記憶體配置。

微控制器的重要性

微控制器通常是小型的低功率運算裝置,內嵌在需要基本運算的硬體中。藉由將機器學習技術導入小型微控制器,我們可以提升生活中數十億部裝置 (包括家用電器和物聯網裝置) 的智慧功能,而不必依賴昂貴的硬體或穩定的網際網路連線,這種裝置通常受限於頻寬和電源限制,並導致高延遲。這也有助於維護隱私,因為資料不會傳送至裝置。請想像一下,可因應日常作息的智慧設備、能理解問題與一般運作差異的智慧型工業用感應器,以及可讓孩子透過有趣歡樂的方式學習的魔法玩具。

支援的平台

TensorFlow Lite for Microcontrollers 是以 C++ 17 編寫,需要使用 32 位元平台。並搭配許多採用 Arm Cortex-M Series 架構的處理器進行廣泛測試,並已移植至 ESP32 等其他架構。該架構是以 Arduino 程式庫的形式提供。也可以為開發環境 (例如 Mbed) 建立專案。Kubernetes 是開放原始碼,可以加入任何 C++ 17 專案。

以下是支援的開發板:

探索範例

每個應用程式範例都位於 GitHub,且包含 README.md 檔案,說明如何將其部署至支援的平台。部分範例也有使用特定平台的端對端教學課程,如下所示:

工作流程

如要在微控制器上部署及執行 TensorFlow 模型,必須執行下列步驟:

  1. 訓練模型
  2. 使用 C++ 程式庫在裝置上執行推論並處理結果。

限制

TensorFlow Lite for Microcontrollers 專門用於特定限制的微控制器開發。如果您是針對更強大的裝置 (例如 Raspberry Pi 等嵌入式 Linux 裝置) 工作,標準 TensorFlow Lite 架構可能會較容易整合。

你應將下列限制納入考量:

  • 僅支援部分的 TensorFlow 作業
  • 僅支援部分裝置
  • 低階 C++ API 需手動管理記憶體
  • 不支援裝置端訓練

後續步驟