TensorFlow Lite for Microcontrollers

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

微控制器的重要性

微控制器通常是小型的低功率運算裝置,內嵌在需要基本計算的硬體中。透過在小型微控制器中導入機器學習技術,我們可大幅改善生活中所用數十億部裝置 (包括家用電器和物聯網裝置) 的智慧功能,而不必依賴昂貴的硬體或可靠的網際網路連線,這類硬體或網際網路連線常常會因為頻寬和電量的限制而導致高延遲。這項做法也有助於維持隱私性,因為資料無須離開裝置。想像一下:可依照你的日常作息進行調整的智慧應用程式、可區分問題與一般操作的智慧型工業用感應器,以及可讓兒童透過趣味和具體的方式學習的神奇玩具。

支援平台

TensorFlow Lite for Microcontrollers 是以 C++ 11 寫成,需要使用 32 位元平台。此外,TensorFlow Lite for Microcontrollers 已在 Arm Cortex-M Series 架構的多個處理器上經過廣泛測試,並已移植到 ESP32 等其他架構。TensorFlow Lite for Microcontrollers 架構是以 Arduino 程式庫的形式提供,也可以為開發環境 (例如 Mbed) 建立專案。TensorFlow Lite for Microcontrollers 為開放原始碼,可以加入任何 C++ 11 專案。

以下是支援的開發板:

探索範例

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

工作流程

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

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

限制

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

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

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

後續步驟