TensorFlow Lite for Microcontrollers 是 TensorFlow Lite 的一個實驗性移植版本,它適用于微控制器和其他一些僅有數千字節內存的設備。
它可以直接在“裸機”上運行,不需要操作系統支持、任何標準 C/C++ 庫和動態內存分配。核心運行時 (core runtime) 在 Cortex M3 上運行時僅需 16KB,加上足以用來運行語音關鍵字檢測模型的操作,也只需 22KB 的空間。
開始
要快速入門并運行 TensorFlow Lite for Microcontrollers,請閱讀微控制器入門。
注:微控制器入門 鏈接
https://tensorflow.google.cn/lite/microcontrollers/get_started
為什么微控制器很重要
微控制器通常是小型、低能耗的計算設備,經常嵌入在只需要進行基本運算的硬件中,包括家用電器和物聯網設備等。每年都有數十億個微控制器被生產出來。
微控制器通常針對低能耗和小尺寸進行優化,但代價是降低了處理能力、內存和存儲。一些微控制器具有用來優化機器學習任務性能的功能。
通過在微控制器上運行機器學習推斷,開發人員可以在不依賴于網絡連接的情況下將 AI 添加到各種各樣的硬件設備中,這經常用來克服帶寬、功率以及由它們所導致的高延遲而造成的約束。在設備上運行推斷也可以幫助保護隱私,因為沒有數據從設備中發送出去。
功能和組件
C++ API,其運行時 (runtime) 在 Cortex M3 上僅需 16KB
使用標準的 TensorFlow Lite FlatBuffer架構 (schema)
為 Arduino、Keil 和 Mbed 等較為流行的嵌入式開發平臺預生成的項目文件
針對多個嵌入式平臺優化
演示口語熱詞檢測的示例代碼
開發工作流程
這是將 TensorFlow 模型部署到微控制器的過程:
創建或獲取 TensorFlow 模型該模型必須非常小,以便在轉換后適合您的目標設備。它只能使用支持的操作。如果要使用當前不被支持的操作,可以提供自己的實現。
將模型轉換為 TensorFlow Lite FlatBuffer您將使用 TensorFlow Lite 轉換器來將模型轉換為標準 TensorFlow Lite 格式。您可能希望輸出量化模型,因為它們的尺寸更小、執行效率更高。
將 FlatBuffer 轉換為 C byte 數組模型保存在只讀程序存儲器中,并以簡單的 C 文件的形式提供。標準工具可用于將 FlatBuffer 轉換為 C 數組。
集成 TensorFlow Lite for Microcontrollers 的 C++ 庫編寫微控制器代碼以使用 C++ 庫執行推斷。
部署到您的設備構建程序并將其部署到您的設備。
注:構建和轉換模型 鏈接
https://tensorflow.google.cn/lite/microcontrollers/build_convert#%E8%BD%AC%E6%8D%A2%E6%A8%A1%E5%9E%8B
理解 C++ 庫 鏈接
https://tensorflow.google.cn/lite/microcontrollers/library
支持的平臺
嵌入式軟件開發的挑戰之一是存在許多不同的體系結構、設備、操作系統和構建系統。我們的目標是盡可能多地支持流行的組合,并盡可能地讓給其他設備添加支持變得簡單。
如果您是產品開發人員,您可以下載我們提供的以下平臺的構建說明或預生成的項目文件:
如果您的設備尚未被支持,添加支持也許并不困難。您可以在 README.md中了解該過程。
可移植參考代碼
如果您還沒有考慮具體的的微控制器平臺,或者只想在開始移植之前試用代碼,最簡單的方法是下載與平臺無關的參考代碼。
注:參考代碼 鏈接
https://drive.google.com/open?id=1cawEQAkqquK_SO4crReDYqf_v7yAwOY8
歸檔中有很多文件夾,每個文件夾只包含構建一個二進制文件所需的源文件。每個文件夾都有一個簡單的 Makefile 文件,您應該能夠將文件加載到幾乎任何 IDE 中并構建它們。我們還提供了已經設置好的 Visual Studio Code 項目文件,因此您可以輕松地在跨平臺 IDE 中瀏覽代碼。
目標
我們的設計目標是使框架可讀、易于修改、經過良好測試、易于集成,并通過一致的文件架構、解釋器、API 和內核接口與 TensorFlow Lite 完全兼容。
您可以閱讀更多在目標和權衡方面有關設計的信息。
限制
TensorFlow Lite for Microcontrollers 專為微控制器開發中的特殊限制而設計。如果您正在使用更強大的設備(例如像 Raspberry Pi 這樣的嵌入式 Linux 設備),標準的 TensorFlow Lite 框架可能更容易集成。
應考慮以下限制:
僅支持 TensorFlow 操作的有限子集
僅支持有限的一些設備
低級 C++ API 需要手動內存管理
注:有限子集 鏈接
-
微控制器
+關注
關注
48文章
7840瀏覽量
153305 -
tensorflow
+關注
關注
13文章
330瀏覽量
60912 -
TensorFlow Lite
+關注
關注
0文章
26瀏覽量
705
原文標題:TensorFlow Lite 微控制器
文章出處:【微信號:tensorflowers,微信公眾號:Tensorflowers】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
家用電器開發中微控制器的選型要點

FPGA 與微控制器優缺點比較
嵌入式系統中微控制器與微處理器的區別

ESP32 微控制器系列指南


微控制器內部的存儲器有哪些
微控制器的結構和應用
微控制器與運動控制器的區別
微控制器是否能替代PLC
微控制器的定義和工作原理
嵌入式微控制器的自動代碼生成

評論