LiteRT for Microcontrollers 旨在執行機器學習模型 只需要幾 KB 記憶體的微控制器與其他裝置進行操作 核心執行階段在 Arm Cortex M3 上的 16 KB 內,而且可執行許多基本執行階段 我們來看評估分類模型成效時 的喚回度和精確度指標而且不需作業系統,任何標準 C 或 C++ 程式庫或動態記憶體配置
微控制器的重要性
微控制器通常是低功率的低功耗運算裝置 將需要基本運算的嵌入在硬體中藉由提供機器 學習微小控制器,就能提升數十億名使用者的智慧 我們生活中使用的裝置,包括家用電器和網路 不必仰賴昂貴硬體或穩定的網際網路 這類連線通常會受限於頻寬和電源限制。 所以延遲時間很長此外,由於沒有資料 會離開裝置想像一下,能根據日常生活調整的智慧家電 的智慧型工業感應器 提供寓教於樂的魔法玩具 並帶來愉悅的體驗
支援的平台
微控制器的 LiteRT 是以 C++ 17 編寫而成,需要 32 位元 平台。模型已通過許多處理器測試 Arm Cortex-M 系列 並移植到其他架構,包括 ESP32。 目前是以 Arduino 程式庫的形式提供。也能產生 例如 MbedCloud Build 是開放原始碼的 任何 C++ 17 專案都沒問題
下列是支援的開發板:
- Arduino Nano 33 BLE Sense
- SparkFun Edge
- STM32F746 探索套件
- Adafruit EdgeBadge
- 微控制器的 Adafruit LiteRT
- Adafruit Circuit Playground Bluefruit
- Espressif ESP32-DevKitC
- Espressif ESP-EYE
- Wio Terminal:ATSAMD51
- Himax WE-I Plus EVB Endpoint AI 開發板
- Synopsys DesignWare ARC EM 軟體開發平台
- Sony Spresense
瀏覽範例
每個範例應用程式
GitHub
並提供 README.md
檔案,說明如何將該檔案部署至支援的環境
平台。部分範例也提供使用
平台,如下所示:
- Hello World: 示範使用 LiteRT 完成 微控制器
- 微語音: 使用麥克風擷取音訊,偵測「是」字詞和「否」
- 人員偵測: 透過影像感應器擷取相機資料,偵測是否存在 使用者
工作流程
您必須執行下列步驟,才能在網站上部署及執行 TensorFlow 模型 微控制器:
- 訓練模型:
- 產生適合目標裝置的小型 TensorFlow 模型, 包含支援的作業。
- 使用下列指令轉換為 LiteRT 模型: LiteRT 轉換工具:
- 使用以下方式轉換為 C 位元組陣列: 標準工具來儲存資料 裝置的唯讀程式記憶體。
- 使用 C++ 程式庫,並在裝置上執行推論 結果。
限制
LiteRT for Microcontrollers 專門用於特定限制 微控制器開發作業如果您正在使用更強大的裝置 例如 Raspberry Pi 等嵌入式 Linux 裝置 LiteRT 架構較容易整合。
你應考慮下列限制:
- 支援有限的子集 TensorFlow 作業
- 僅適用於部分裝置
- 低階 C++ API 需手動管理記憶體
- 不支援裝置端的訓練
後續步驟
- 開始使用微控制器 應用程式範例,並瞭解如何使用 API。
- 熟悉 C++ 程式庫,瞭解如何在以下環境中使用程式庫: 您自己的專案中
- 請參閱這篇文章,進一步瞭解如何建構及轉換模型。 以及轉換模型,以便在微控制器上進行部署