LiteRT for Microcontrollers C++ 程式庫是 TensorFlow 存放區。 不僅易於閱讀、修改、測試良好、整合方便 且與一般 LiteRT 相容
以下文件概述 C++ 程式庫和 提供了建立專案的相關資訊
檔案結構
micro
敬上
根目錄的結構相對簡單不過,因為
我們在廣泛的 TensorFlow 存放區中
建立了指令碼
預先產生的專案檔案 (單獨提供相關來源檔案)
各種內嵌開發環境的高可用性
金鑰檔案
使用 LiteRT for Microcontrollers 最重要的檔案 譯者位於專案的根目錄,並隨附測試:
[`micro_mutable_op_resolver.h`](https://github.com/tensorflow/tflite-micro/blob/main/tensorflow/lite/micro/micro_mutable_op_resolver.h)
can be used to provide the operations used by the interpreter to run the
model.
micro_error_reporter.h
敬上 輸出偵錯資訊micro_interpreter.h
敬上 包含處理及執行模型的程式碼。
請參閱「開始使用微控制器」, 會逐步介紹常見的用法
建構系統可為某些平台專屬的
檔案。這些管道位於具有平台名稱的目錄中
cortex-m
。
還有幾個其他目錄,包括:
建立新專案
我們建議使用 Hello World 範例做為新專案的範本。個人中心 可取得所選平台的版本,做法如下: 請參閱本節的操作說明。
使用 Arduino 程式庫
如果您使用的是 Arduino,Hello World範例包含在
Arduino_TensorFlowLite
Arduino 程式庫 (可手動安裝到
Arduino IDE 和 Arduino Create。
新增程式庫後,請前往 File -> Examples
。您應該會看到
位於名為 TensorFlowLite:hello_world
的清單底部附近。選取
並點選 hello_world
來載入範例。接著,您可將
做為專案基礎
為其他平台產生專案
微控制器的 LiteRT 可以產生獨立的專案
或使用 Makefile
來納入所有必要來源檔案。目前
以及 Keil、Make 和 Mbed 這兩個支援的環境
如要透過 Make 產生這些專案,請複製 TensorFlow/tflite-micro 存放區 然後執行下列指令:
make -f tensorflow/lite/micro/tools/make/Makefile generate_projects
這會需要幾分鐘的時間,因為必須下載一些大型工具鍊,
依附元件完成後,您應該會看到一些已建立的資料夾
位於類似 gen/linux_x86_64/prj/
的路徑中 (
確切路徑則視主機作業系統而定)。這些資料夾包含
產生的專案和來源檔案
執行指令後,您即可在以下位置找到 Hello World 專案:
gen/linux_x86_64/prj/hello_world
。適用對象
例如,hello_world/keil
會包含 Keil 專案。
執行測試
如要建構程式庫並執行所有單元測試,請使用下列指令:
make -f tensorflow/lite/micro/tools/make/Makefile test
如要執行個別測試,請使用下列指令,將 <test_name>
替換為
取代為:
make -f tensorflow/lite/micro/tools/make/Makefile test_<test_name>
您可以在專案的 Makefiles 中找到測試名稱。例如:
examples/hello_world/Makefile.inc
會指定 Hello
World 範例。
建構二進位檔
如要為特定專案 (例如範例應用程式) 建構可執行的二進位檔,
請使用以下指令,將 <project_name>
替換為所需的專案
建構:
make -f tensorflow/lite/micro/tools/make/Makefile <project_name>_bin
例如,下列指令將為 Hello World 建構二進位檔 應用程式:
make -f tensorflow/lite/micro/tools/make/Makefile hello_world_bin
根據預設,專案會針對主機作業系統進行編譯。目的地:
指定不同的目標架構,請使用 TARGET=
和 TARGET_ARCH=
。
下例說明如何為一般 API 建構 Hello World 範例
cortex-m0:
make -f tensorflow/lite/micro/tools/make/Makefile TARGET=cortex_m_generic TARGET_ARCH=cortex-m0 hello_world_bin
指定目標後,所有可用的目標專屬來源檔案將成為
來取代原始程式碼例如子目錄
examples/hello_world/cortex_m_generic
包含 SparkFun Edge 實作
「constants.cc
」和「output_handler.cc
」中,以供當
目標 cortex_m_generic
已指定。
您可以在專案的 Makefiles 中找到專案名稱。例如:
examples/hello_world/Makefile.inc
會指定 Hello
World 範例。
最佳化核心
tensorflow/lite/micro/kernels
根的參照核心為
在純 C/C++ 中實作,且不包含平台專屬硬體
以及最佳化調整
子目錄會提供最佳化的核心版本。例如:
kernels/cmsis-nn
包含數個使用 Arm 的最佳化核心
CMSIS-NN 程式庫。
如要使用最佳化核心產生專案,請使用下列指令:
將 <subdirectory_name>
換成包含
最佳化:
make -f tensorflow/lite/micro/tools/make/Makefile TAGS=<subdirectory_name> generate_projects
如要自行建立最佳化設定,你可以為其建立新的子資料夾。三 建議對新的最佳化實作提出提取要求。
產生 Arduino 程式庫
如需產生新的程式庫版本,可以執行以下程式碼: 編寫指令碼:
./tensorflow/lite/micro/tools/ci_build/test_arduino.sh
您可以在以下位置找到產生的程式庫
gen/arduino_x86_64/prj/tensorflow_lite.zip
。
攜碼轉移至新裝置
將微控制器的 LiteRT 移植到新平台和
裝置位於
micro/docs/new_platform_support.md
。