2415701_ja-JP

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

2415701_ja-JP

2415701_ja-JP

i.MX95 NPUのReLU6出力が6を超えてもエラーや警告なしに問題ないのは予想されますか?

こんにちは、

私たちは、i.MX95 Neutron NPU上でReLU6がどのように挙動するかを理解しようとしています。

私たちが理解している限りでは、ReLU6は常に0から6の間の出力値を維持するはずです。私たちは気づきました
SSD MobileNet V1モデルではCPUに比べてNPUの検出精度が低いため、
中間層の出力をチェックし始めました。ReLU6を使うレイヤーの場合、基板上の値は
6を超え(最大で約25まで)、同じCPUの同じレイヤー(同じモデル、同じ入力)が常に使われていました
予想通り0-6の差を保ちました。

実行時にボード上でこれに関するエラーや警告は一切表示されませんでした。モデル変換中、
Neutron-compilerは量子化に関する一般的な警告をいくつか表示しますが、どれも表示していません
この点に関係しているようです。

以下の点について教えていただけますか:
1.このNPUでReLU6の出力が6を超えることは期待できますか?
2. もしそうでなければ、その場合にコンパイラやランタイムがエラーや警告を表示するべきではないでしょうか?

環境:
- ボード:i.MX95 EVK
- BSP:LF_6.18.20_2.0.0
- eIQ Neutron SDK: 3.2.3
- モデル:SSD MobileNet V1(uint8、Arm ML-Zoo)

ご回答をお待ちしています。

Re: Is it expected that a ReLU6 output can exceed 6 on the i.MX95 NPU, with no error or warning?

こんにちは、

NXP Semiconductors製品にご関心いただきありがとうございます。

ReLU6はNeutron Supported Operatorsのマークダウンでサポートされているオペレーターとしてリストされていますが、もしそのレイヤーがReLUに変更されていないか確認したいのですが、再現の手順と入手するバイナリを教えていただけますか?

eIQ Model Zoo mobilenetv1を試して、Neutronに変換するのも良いでしょう。

よろしくお願いします。

Re: Is it expected that a ReLU6 output can exceed 6 on the i.MX95 NPU, with no error or warning?

こんにちは、

迅速なご返信ありがとうございます。

1) ReLUではなくReLU6であることを確認する

いいえ、この層はReLUに変更されていません。ニュートロンコンパイラ自身のニュートロンIR(--dump-neutron-ir-final-file)
それでもFusedActivation = "Relu6"と表示されており、私たちのファイルの解釈ではありません。参照
正確なモデル、コマンド、出力のためのevidence/01_confirm_still_relu6/。

2) 再現手順と取得したバイナリ

正確なコマンド、コンパイルされたモデル、入力についてはevidence/02_reproduction_npu_exceeds_bound/を参照してください。
スクリプト、コンソールログ、そして生の出力テンソルです。i.MX95 EVKボードについて:
最小値=-15 最大値=96
ReLU6の上限値(生データ):上限値を超える要素数:720000個中4650個(0.65%)
CPU 上の同じレイヤーは予想通り 0~6 の範囲内に収まります (実際の最大値=5.999、NPU の実際の最大値=24.664)。

3) eIQ Model Zoo mobilenetv1 を試すについて

試してみました(あなたのrecipe.shにあるmobilenet_v1_0.25_128_quant.tflite)。28人のうち、誰もいない
CONV_2D/DEPTHWISE_CONV_2Dオペレーターは実際にはReLU6を融合した作動として使っているので、このモデルには含まれていません
報告している問題を再現(または除外)してください。

参考までに、これらはすべてeIQ Neutron SDK 3.2.3を使用していますコンパイラおよび搭載ランタイム全体で。私たちは
問題はNeutronコンパイラ自体にあると推測されます。ReLU6でこのレイヤーをコンパイルするとプレーンに変更されました
ReLUはバイトごとに同一のマイクロコードを生成したため、上限は
生成コード自体が問題ありません。

ご自身で確認していただけますか?他に何か必要なことがあれば教えてください。

ご回答をお待ちしています。

タグ(1)
評価なし
バージョン履歴
最終更新日:
土曜日
更新者: