git clone https://github.com/tensorflow/tflite-micro.git
這種方法是最官方,最直接的方法。
(1)可以緊跟 TensorFlow 團隊的最新開發同步。從下面的截圖可以看出,代碼在實時更新。

(2)這種方法也是確保代碼最完整的方式,代碼中包含了下面的所有內容。
tensorflow/lite/micro/:核心運行時(interpreter、allocator、op resolver 等)tensorflow/lite/micro/kernels/:算子實現tensorflow/lite/micro/tools/make/:make build 系統和示例tensorflow/lite/micro/examples/:speech / person_detection / magic_wand / hello_world 等示例。
(3)這種方式的缺點是:需要自己編寫Cmake/Makefile或者自己移植到自己的實際工程中,如CubeIDE工程。在移植時,為了控制代碼體積,還需要自己選擇所需要的算子(裁剪算子)。
2. 從 TensorFlow 總倉中取出 TFLM 子目錄(舊路徑)
在較早的版本里,TFLM 是 TensorFlow 總倉里的一個子目錄(現在官方推薦改用獨立倉庫)。
如果我們已經用的是舊版 TensorFlow 源碼,也可以從下面代碼中的子目錄獲取。
git clone https://github.com/tensorflow/tensorflow.git# 關鍵目錄:tensorflow/lite/micro/ ...
這種方法是可以方便和你 PC 端訓練/轉換腳本保持完全同一版本。可以避免PC端訓練的版本與實際使用的TFLM版本不一致的情況。
3. 通過 Arduino 官方庫獲取(適合快速上手 + 看裁剪過的源碼)
Google 官方維護了一個專門給 Arduino 用的 TFLM 庫倉庫。
https://github.com/tensorflow/tflite-micro-arduino-examples在 Arduino IDE 的 “庫管理器” 中搜索TensorFlowLite 或查看官方說明安裝;
安裝后,在Arduino/libraries/目錄下回生成一個庫文件夾,里面就包含已經裁剪好的 src/源碼和示例。
這套源碼是從上游 TFLM 自動同步并裁剪過的,結構比較干凈,適合作為“移植模板”(比較適合先能在 Arduino 跑通,再移植到 STM32 工程里)。
4. 通過芯片廠商 SDK / 中間件獲取(帶平臺優化的 TFLM 源碼)
許多的MCU廠商把針對自家芯片優化過的TFLM 源碼或靜態庫集成進了自家的SDK或者AI 工具里,我們可以直接從這些 SDK 中拷貝出源碼使用:
比如:STM32的X-CUBE-AI中含 TFLite Micro的源文件。
ST 的官方文檔說明:X-CUBE-AI 中會打包一份從官方 tflite-micro 倉庫同步過來的 TFLM 源碼(.h / .cc),并且附帶 CMSIS-NN 等優化的實現:
(我在STM32F103上跑通AI模型的Demo就是采用的這種方式)。
我們安裝完STM32 CUBE-AI 后,安裝目錄的Middlewares/TensorFlowLite-Micro/目錄下的文件就是TFLM的源碼。

這種方式已經針對 STM32(含 CMSIS-NN)做過算子優化;比較適合做 STM32 專用的 TFLM runtime,減少我們手動適配的工作量。
5. 我的教學課程倉庫中精簡版TFLM 源碼
在我的TinyML課程中會提供課程實際使用的、已經精簡過的示例倉庫,里面包含一份已經裁剪、重命名、或稍加修改過的 TFLM,主要用于我們課程學習或實驗。
我實際只保留了少數幾個算子(Conv、DepthwiseConv、FullyConnected、Softmax 等),代碼體積很小,所以可以在STM32F103這類FLash和RAM很小的MCU上跑起來。
這種方式的最大優勢就是結構簡單、易讀。

下面提供幾種選擇的建議:
(1)如果我們想讀源碼、做系統級的理解用官方tflite-micro倉庫+Arduino tflite-micro-arduino-examples;
(2)如果我們想在 STM32 上跑、并且利用 ST 的優化:選擇用X-CUBE-AI 中自帶的 TFLM 源碼(看它如何和 CMSIS-NN / HAL 結合);
(3)如果我們想做移植教程或手動做一個“最小 TFLM 運行時”示例用我課程倉庫里的精簡版 TFLM,或者你自己從官方倉庫裁剪。
歡迎加我的微信好友,593342536,我可以免費提供實際源碼。
歡迎來我的課程,我會帶著你手把手實操將大模型部署到單片機上。三十分鐘學會將大模型部署到單片機上。
