2390939_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2390939_ja-JP

2390939_ja-JP

MIMRT700ボード上の大規模なデータセットでNPU tfliteモデルを評価するにはどうすればいいですか?

私の質問はタイトルの通りです。

私はtfliteモデルを使っていますが、NPUのTfliteモデルに変換しました。tfliteモデルとNPUのTfliteモデルの予測が場合によっては異なることを確認しました(大きな違いはありません)。そこで、大規模なデータセットに対して評価NPU tfliteモデルを実行したいと考えています。

現在はサンプルtflm_cifar10_cm33_core0 に従って推論NPU tfliteモデルをMIMRT700で実行しており、うまく動作しています。しかし、このサンプルでは、静止画像用にimage_data.hを修正しました(カメラは使用していません)。このサンプルを新しいCASE「大規模データセットで評価NPUのtfliteモデルを実行する」用に修正したいです。

  • 私はSDカードを使用して画像を保存し、推論時にimage_data.hとして読み込む予定です。でも、どこから始めればいいのか分かりません

MIMRT700にはデバッグ、eUSB、USB-OTGの3つのマイクロUSBポートがあることがわかりました。

何かおすすめやご提案があれば、ぜひ教えてください。各イメージを手動で実行する(ビルド+フラッシュ)と、非常に時間がかかります。

Re: How to evaluate NPU tflite model on large dataset on MIMRT700 board?

@EdwinHz

応援してくださりありがとうございます。

SDカードの方法は良いです。ハードウェアは得意ではないので、チームメイトの提案で。

先ほど挙げたこの方法はどうでしょうか?

現在、私はtflm_cifar10_cm33_core0サンプルを使用して推論を実行するために、以下の手順を踏んでいます。

- image_data.h をサンプルにコピーします

- ビルドボタンをクリックします

デバッグボタンをクリックし、次に続行ボタンをクリックして推論を実行します。

チームメイトと話し合い、コマンドラインでビルドや推論を実行できるかどうかも話し合いました。とても良いです。もしうまくいけば、毎回image_data.hを変更するスクリプトを作成し、推論を構築し実行し、推論結果をPCに戻すことができます。これについてコメントはありますか?

NXPがビルド、フラッシュ、サンプルtflm_cifar10_cm33_core0の実行に関するガイドラインがあればより簡単にカスタマイズできるということです。ハードウェアは得意ではないのでこの方法が気に入っています(NXPがこの方法をサポートしていれば、Pythonスクリプトを作成して毎回image_data.hを作成し、ビルドし、フラッシュし、実行して結果をPCに戻し、保存できます.csvファイルなど)。この方法(ビルド、フラッシュ、実行、コマンドライン経由でPCに結果を返す)をサポートするベンダーも多く見かけます。NXPもこの方法をサポートしていると思います。

Re: How to evaluate NPU tflite model on large dataset on MIMRT700 board?

こんにちは、 @nnxxpp さん

ご指摘のとおり、この例では静的ヘッダー方式を採用しています。しかし、SDカードを介してイメージをマウントするパイプラインを構築する方が、大規模なデータセットにははるかに適しているだろう。

画像をSDカードに事前にロードしておき、SDカードをマウントし、画像リストを開いて、各画像に対して次の操作を行います。

- 入力バッファへの読み込み
- NPU推論を実行する
- 「results.csv」に結果を書き込むファイル

現時点でこれを例示するサンプルコードはありませんが、使用しているtflm_cifar10_cm33_core0 sdcard_fatfsと、すでに初期化やカードマウントを処理し、SDカード利用に関するすべてのAPIを備えたSDKの例の両方を参照できます。

SDカードのサンプルを実行して理解し、バイナリイメージファイルの読み込みをテストすることをお勧めします。次に、tflm サンプルに SD カードのコンポーネントを追加し、SD カードの初期化と FatFs コードをインポートし、最後に静的ファイル image_data.h を置き換えます。f_read() を使用して SD カードから読み取った画像情報を含むバッファを入力として使用します。

画像をあらかじめテンソル形式で保存しておけば、処理が簡素化され、JPEG/PNGのデコード処理が不要になる。

BR、
エドウィン。

Re: How to evaluate NPU tflite model on large dataset on MIMRT700 board?

さらに情報を追加したいです。

現在、私はtflm_cifar10_cm33_core0サンプルを使用して推論を実行するために、以下の手順を踏んでいます。

- image_data.h をサンプルにコピーします

- ビルドボタンをクリックします

デバッグボタンをクリックし、次に続行ボタンをクリックして推論を実行します。

チームメイトと話し合い、コマンドラインでビルドや推論を実行できるかどうかも話し合いました。とても良いです。もしうまくいけば、毎回image_data.hを変更するスクリプトを作成し、推論を構築し実行し、推論結果をPCに戻すことができます。これについてコメントはありますか?本当にありがとうございます。

Re: How to evaluate NPU tflite model on large dataset on MIMRT700 board?

また、SDカードMIMRT700表示されているのも見ました。画像を読み込んでtflm_cifar10_cm33_core0してSDカードに保存できるなら、とても良いです。

でも正直に言うと、どう始めたらいいかは分かっています。私はハードウェアに詳しくありません。

Re: How to evaluate NPU tflite model on large dataset on MIMRT700 board?

こんにちは、 @nnxxpp さん

わかりました。

MCUXpresso SDKプロジェクトはコマンドラインから実行でき、スクリプトでプロセスを自動化できます。私たちのSDKコマンドラインフローはwest buildを使っており、flashはwest flash -r linkserverで行えます。

AN14700では、セクション「7.3」のパート8で説明されているように、CLIを使用してプロジェクトをコンパイルします。変換モデルを動かせ」と言いました。

したがって、このプロセスを自動化するためのスクリプトの一般的な応用は以下の通りです:

1. 新しいimage_data.hをコピーする

2. WestBuildを使用して構築する

3. West Flash を使用したプログラム

4. UARTログの取得

「一般的な推奨方法」ではありませんが、あなたの用途にも十分効果的でしょう。

BR、
エドウィン。

Re: How to evaluate NPU tflite model on large dataset on MIMRT700 board?

@EdwinHz

はい。本当にありがとうございます。

このドキュメントを調べて従ったところ、Westを使うことで実行プログラムをフラッシュできました。ここから、すべてのプロセスを自動化するスクリプトを作成できます。

このコマンドを使用する前に

west build -b mimxrt700evk examples/demo_apps/hello_world -- -Dcore_id=cm33_core0
 
AN14700のドキュメントで、 west build -p always examples/eiq_examples/tflm_label_image --toolchain という記述を見ました。
armgcc --config flash_debug -b mimxrt700evk -Dcore_id=cm33_core0
 
最初のコマンドにあるフラグについて質問があります。それはどういう意味ですか?また、MIMXRT700EVKでNPU tfliteモデルを動かす際に設定すべきフラグはどれですか?
Tags (1)
No ratings
Version history
Last update:
3 weeks ago
Updated by: