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