TensorFlow Lite 微控制器

TensorFlow Lite 微控制器旨在於記憶體僅有幾 KB 的微控制器和其他裝置上執行機器學習模型。核心執行階段僅佔用 Arm Cortex M3 上的 16 KB,即可執行許多基本模型。它不需要作業系統支援、任何標準 C 或 C++ 程式庫或動態記憶體配置。

為何微控制器如此重要

微控制器通常是小型、低功耗的運算裝置,嵌入在需要基本運算的硬體中。透過將機器學習引入微小的微控制器,我們可以提升數十億個日常生活中使用的裝置(包括家用電器和物聯網裝置)的智慧,而無需依賴昂貴的硬體或可靠的網際網路連線,後者通常會受到頻寬和電力限制,並導致高延遲。這也有助於保護隱私,因為沒有資料會離開裝置。想像一下,智慧型家電可以適應您的日常作息、智慧型工業感測器可以了解問題和正常運作之間的差異,以及可以幫助孩子以有趣且愉快的方式學習的魔法玩具。

支援的平台

TensorFlow Lite 微控制器以 C++ 17 編寫,需要 32 位元平台。它已在許多基於 Arm Cortex-M 系列 架構的處理器上進行了廣泛測試,並已移植到包括 ESP32 在內的其他架構。該框架可作為 Arduino 程式庫使用。它也可以為 Mbed 等開發環境產生專案。它是開放原始碼,可以包含在任何 C++ 17 專案中。

支援以下開發板

探索範例

每個範例應用程式都在 Github 上,並有一個 README.md 檔案說明如何將其部署到支援的平台上。一些範例也有使用特定平台的端對端教學課程,如下所示

工作流程

需要在微控制器上部署和執行 TensorFlow 模型,需要以下步驟

  1. 訓練模型:
    • 產生一個小型 TensorFlow 模型,該模型可以適用於您的目標裝置並包含 支援的操作
    • 使用 TensorFlow Lite 轉換器 轉換為 TensorFlow Lite 模型
    • 使用 標準工具 轉換為 C 位元組陣列,以將其儲存在裝置上的唯讀程式記憶體中。
  2. 使用 C++ 程式庫 在裝置上執行推論,並處理結果。

限制

TensorFlow Lite 微控制器是專為微控制器開發的特定限制而設計的。如果您正在使用功能更強大的裝置(例如,像 Raspberry Pi 這樣的嵌入式 Linux 裝置),則標準 TensorFlow Lite 框架可能更容易整合。

應考慮以下限制

  • 支援 有限的子集 TensorFlow 操作
  • 支援有限的裝置集
  • 需要手動記憶體管理的低階 C++ API
  • 不支援裝置端訓練

後續步驟