C++ ライブラリについて

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.

詳しくは、マイクロコントローラのスタートガイド 一般的な使用例を紹介します

ビルドシステムでは、特定のコンテナをプラットフォーム固有の できます。環境変数は、プラットフォーム名( cortex-m

他にも、次のような複数のディレクトリがあります。

  • kernel これにはオペレーションの実装と関連コードが含まれます。
  • tools ビルドツールとその出力が表示されます。
  • examples ダウンロードしてください

新しいプロジェクトの開始

新しいプロジェクト用のテンプレートとして 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.ccoutput_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