2388009_ja-JP

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

2388009_ja-JP

2388009_ja-JP

例tflm_cifar10_cm33_core0に tflm_label_image_ext_mem のメモリ設定を使ってもいいですか?

良い1日を。

現在はEIQ例tflm_cifar10_cm33_core0 を使ってNPUモードでモデル化しています。モデルデータはSRAMに保存されます。推論時間は良好です。そして、こちらがメモリ構成です。このeiq例を5クラスのモデル用に修正しました

nnxxpp_0-1782788058723.png

https://docs.nxp.com/bundle/AN14700/page/topics/eiq_enablement.html


しかし今はモデルが大きくなり、NPU tfliteモデルを外部メモリ上で特定したいと考えています。モデルデータはFlashに格納されています。そして、こちらは eiq の例tflm_label_image_ext_memの設定です。

nnxxpp_2-1782788224534.png


nnxxpp_1-1782788176608.png

https://docs.nxp.com/bundle/AN14700/page/topics/imx_rt700_system_details.html

私の目標は、ソースコードをtflm_cifar10_cm33_core0から保持したい(tflm_label_image_ext_memで新しいソースコードを作成したくはありません)が、NPU tfliteモデルを外部メモリ上で特定したい ということです。

私の解決策は、上記の画像のように、メモリ構成をSRAMから外部メモリに変更することだけです。それで合っていますか?あるいは、他の設定も変更する必要があるのかもしれません。



Re: Can I use memory config from tflm_label_image_ext_mem for the example tflm_cifar10_cm33_core0?

こんにちは、 @nnxxpp さん

ご説明ありがとうございます。

「--use-sequencer」を外部メモリモデルの実行と組み合わせて使用しないでください。

「tflm_label_image_ext_mem」例では、モデルが外部メモリから実行されるため、「--fetch-constants-to-sram」を残し、「--use-sequencer」は削除してください。

モデルを以下のように変換してみてください。

./Neutronコンバータ \
--入力 QAT.tflite\
--出力 QAT_NPU.tflite\
--target imxrt700 \
--ヘッダーファイル出力をダンプする
--dump-header-file-input \
--定数をSRAMに取得
 

mayliu1_0-1782872651573.pngmayliu1_1-1782872691770.png

お役に立てれば幸いです。

よろしくお願いいたします。

5月

Re: Can I use memory config from tflm_label_image_ext_mem for the example tflm_cifar10_cm33_core0?

@mayliu1
こんにちは。これは新たな問題です(まだ解決されていません)。この問題は、外部メモリ(SRAMではなく)でのNPU tfliteモデルのデプロイに関連しています。

現在はSDKs of MIMRT700のeiqサンプルtflm_label_image_ext_memを使っています。この例はCANうまく実行できます。この例はモデル mobilenetv1 で、サイズ=224、クラス数=1000です。

サンプルのモデルを自分のモデル(同じ分類モデル)に置き換えようとしましたが、クラス数を変えました。

  • ラベルを変えました。(レーベル名の場合)、
  • サンプルのモデルを自分のモデルに置き換え、名前は同じまま使っています
  • model_data.h ファイル内のmodel_data_lenも変更しました。

ビルドはできましたが、デバッグを実行するとプログラムは「静的プロセッシング」で停止し、結果が出ませんでした。

nnxxpp_0-1782812429613.png

上の画像には 「モデルハンドルを保存できません。完了したらneutronModelUnprepare()を呼び出せ」というメッセージがありますが、NXPの従業員の一人はエラーではないと言っていました。https://community.nxp.com/t5/eIQ-Machine-Learning-Software/eIQ-FAQ/ta-p/1099741

NPUモデルが外部メモリ上にあるCASE、拡張子.tflite モデルを使います(モデルがSRAM上で位置する場合はヘッダーファイル.hではありません)。

モデルをフラグで--fetch-constants-to-sramに変換して、外部メモリ上のNPUモデルをこのように位置づけています

./Neutronコンバータ \
--input QAT.tflite \
--output QAT_NPU.tflite \
--target imxrt700 \
--ヘッダーファイル出力をダンプする
--dump-header-file-input \
--use-sequencer \
--定数をSRAMに取得
 

NXPから設定や設定(SOの変更方法や場所)のチュートリアルが見当たらなかったので、上記の手順で試しましたがうまくいきませんでした。

手伝ってもらえますか?ありがとう。

Re: Can I use memory config from tflm_label_image_ext_mem for the example tflm_cifar10_cm33_core0?

こんにちは@nnxxpp さん

私たちの製品にご関心を寄せ、コミュニティをご利用いただき、本当にありがとうございます。

返信が遅くなり申し訳ありません。

前回の投稿で、問題はすでに解決済みだと書かれていたことに気づきました。全てが正常に機能していると聞いて安心しました。

ご理解いただき、改めて感謝申し上げます。

よろしくお願いいたします。

5月

Tags (1)
No ratings
Version history
Last update:
2 hours ago
Updated by: