私は量子化された分類モデルを持っています。私はコマンドでNPU tfliteモデルに変換しています
./Neutron-converter \
--入力 QAT.tflite \
--出力QAT_NPU.tflite \
--ターゲット IMXRT700 \
--dump-header-file-output \
--dump-header-file-input \
--use-sequencer
その後、NPUとCPU用の2つの生成モデルヘッダーファイルを使っています。
私はモデル 用に改良したサンプルtflm_cifar10_cm33_core0を使っています。サンプルimage_data.h(入力サイズをモデル化した画像)を使っています。しかし、CPUモードとNPUモードの2つのモデルの最終的な結果は異なります。
- ほぼの場合、予測クラスはほぼ同じ確率で(値による完全一致ではない)
- 場合によっては、2つのモードにおける予測クラスが異なることもあります ==> この問題について何かコメントはありますか? モデルは共有できず申し訳ありません。
サンプルtflm_cifar10_cm33_core0を使用してこの問題を検証しようとしました。しかしこのサンプルにはNPUのtfliteモデルしかなく、もう一方のCPUtfliteモデルは見当たりませんでした。予測結果を異なる画像と比較し、NXPで事前学習されたモデルでこの問題が起きているかどうかを確認したいです。
もしCPUのtfliteモデル(NPUのtfliteモデルtflm_cifar10_cm33_core0に対応している)をお持ちなら、ぜひ教えてください。
tfliteモデルからNPUtfliteモデルへの変換が推論結果の違いをもたらすのか気になっています。
よろしくお願いします。
こんにちは、 @nnxxpp さん。
ご意見をお寄せいただきありがとうございます。
あなたの事件は現在、私の同僚エドウィンが積極的に調査中です。調査が継続中ですので、しばらくお待ちいただけますようお願いいたします。エドウィンはこのマターについて引き続き追跡し、進展があれば皆さんに報告します。
ご理解いただきありがとうございます。
よろしくお願いいたします。
5月
ああ、それをあなたから聞けてとても嬉しいです。応援してくれて本当にありがとうございます。あなたからの良い知らせを待っています。
こんにちは、 @nnxxpp さん。
モデル変換プロセス後には、ニュートロンコンバーターがモデルをNPU実行のためにニュートロングラフノードに再構成するため、出力値にわずかな違いが見られると予想されます。CPUベースのTFLMのように元のグラフをオペレーター単位で実行するのとは異なります。
ただし、出力が大きく異なりすぎて予測クラスが誤りすぎる場合は、実行時に使われる中性子変換器バージョンや中性子ライブラリのバージョンを確認し、ソフトウェアの一致を確認、NPUに使われたメモリ構成、変換済みノードの検査でモデル全体が部分的に変換されているか確認することが重要です。
BR、
エドウィン。
@mayliu1こんにちは、この問題について助けていただけますか?
申し訳ありませんが、i.MX RTにおけるNXPの支持者の数は少なく、質問が見落とされてしまうことがあるように感じます。以前はMIMXRT1060とN947を使っていましたが、非常に速い応答が得られました。
応援してくれて本当にありがとうございます。
はい。これは期待されていることだと理解しているので、この場合はNPU tflite(tfliteモデルではなく)を搭載して評価し、正確な性能を確認する必要があります。ありがとう。