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。