LiteRT for Microcontrollers C++ ライブラリは TensorFlow リポジトリ。 読みやすく、変更しやすく、十分にテストされており、統合しやすいように設計されています。 通常の LiteRT と互換性があります
次のドキュメントでは、C++ ライブラリの基本構造と では、独自のプロジェクトの作成に関する情報を確認できます。
ファイル構造
「
micro
ルート ディレクトリの構造は比較的シンプルです。ただし、Kubernetes は
この大規模な 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 for Microcontrollers でスタンドアロン プロジェクトを生成できる
必要なソースファイルをすべて含む(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>
テスト名はプロジェクトの Makefile で確認できます。たとえば
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
が指定されている。
プロジェクト名はプロジェクトの Makefile で確認できます。たとえば
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
新しいサブフォルダを作成することで、独自の最適化を追加できます。水 新しく最適化された実装の pull リクエストを推奨します。
Arduino ライブラリを生成する
ライブラリの新しいビルドを生成する必要がある場合は、次のコマンドを実行します。 スクリプトを使用します。
./tensorflow/lite/micro/tools/ci_build/test_arduino.sh
作成されたライブラリは
gen/arduino_x86_64/prj/tensorflow_lite.zip
。
新しいデバイスに移行する
新しいプラットフォームと新しいプラットフォームへの LiteRT for Microcontrollers の移植に関するガイダンス
デバイスは
micro/docs/new_platform_support.md
。