微控制器的 LiteRT

LiteRT for Microcontrollers 旨在執行機器學習模型 只需要幾 KB 記憶體的微控制器與其他裝置進行操作 核心執行階段在 Arm Cortex M3 上的 16 KB 內,而且可執行許多基本執行階段 我們來看評估分類模型成效時 的喚回度和精確度指標而且不需作業系統,任何標準 C 或 C++ 程式庫或動態記憶體配置

微控制器的重要性

微控制器通常是低功率的低功耗運算裝置 將需要基本運算的嵌入在硬體中藉由提供機器 學習微小控制器,就能提升數十億名使用者的智慧 我們生活中使用的裝置,包括家用電器和網路 不必仰賴昂貴硬體或穩定的網際網路 這類連線通常會受限於頻寬和電源限制。 所以延遲時間很長此外,由於沒有資料 會離開裝置想像一下,能根據日常生活調整的智慧家電 的智慧型工業感應器 提供寓教於樂的魔法玩具 並帶來愉悅的體驗

支援的平台

微控制器的 LiteRT 是以 C++ 17 編寫而成,需要 32 位元 平台。模型已通過許多處理器測試 Arm Cortex-M 系列 並移植到其他架構,包括 ESP32。 目前是以 Arduino 程式庫的形式提供。也能產生 例如 MbedCloud Build 是開放原始碼的 任何 C++ 17 專案都沒問題

下列是支援的開發板:

瀏覽範例

每個範例應用程式 GitHub 並提供 README.md 檔案,說明如何將該檔案部署至支援的環境 平台。部分範例也提供使用 平台,如下所示:

工作流程

您必須執行下列步驟,才能在網站上部署及執行 TensorFlow 模型 微控制器:

  1. 訓練模型
    • 產生適合目標裝置的小型 TensorFlow 模型, 包含支援的作業
    • 使用下列指令轉換為 LiteRT 模型LiteRT 轉換工具
    • 使用以下方式轉換為 C 位元組陣列標準工具來儲存資料 裝置的唯讀程式記憶體。
  2. 使用 C++ 程式庫,並在裝置上執行推論 結果。

限制

LiteRT for Microcontrollers 專門用於特定限制 微控制器開發作業如果您正在使用更強大的裝置 例如 Raspberry Pi 等嵌入式 Linux 裝置 LiteRT 架構較容易整合。

你應考慮下列限制:

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

後續步驟

  • 開始使用微控制器 應用程式範例,並瞭解如何使用 API。
  • 熟悉 C++ 程式庫,瞭解如何在以下環境中使用程式庫: 您自己的專案中
  • 請參閱這篇文章,進一步瞭解如何建構及轉換模型。 以及轉換模型,以便在微控制器上進行部署