NXPテクニカルサポートチーム様
現在、ResNetをバックボーンとしてポーズ推定モデルを開発しており、i.MX95プラットフォームをベースにした製品への展開を検討しています。
しかし、Neutron NPU で量子化モデルを実行すると、推論精度が大幅に低下します。調査の結果、標準的な分類モデルであっても、CPU 上で正しく実行される量子化モデルは、NPU 実行用に変換すると結果が劣化することが明らかになりました。この問題は、私たちがバックボーンとして使用している ResNet にも影響します。
部分的なNPU割り当てテストを通じて Neutron-converterでは、特定のConv2Dレイヤー以外のレイヤーをNPUに割り当てると劣化が発生することを確認しました。
以下の点についてご意見をお聞かせいただければ幸いです。
推論性能の低下の原因は何でしょうか?
たとえば、量子化または変換パラメータの問題、NPU のハードウェア制限、または Neutron コンバータのバグ。
この問題に関連する既知の問題はありますか?
たとえば、BSP 6.12.20 や eIQ Toolkit 1.16.0 のバグなど、NPU 上で ResNet モデルを実行する場合の既知の制限、または i.MX95 NPU に関するその他の文書化された問題。
NPU で実行すると、推論の精度が大幅に低下します。
我々は量子化モデルを用いてテストした。 モバイルネットV2 そして ResNet18 (から トーチビジョンを使用して ImageNetV2 (500 サンプル) :
| モデル | float32 CPU 精度 (トップ 1 / トップ 5) | int8 CPU 精度 (トップ 1 / トップ 5) | int8 NPU 精度 (トップ 1 / トップ 5) |
| モバイルネットV2 | 70.2% / 89.4% | 68.4% / 88.6% | 0.2% / 0.8% |
ResNet18 | 64.0% / 86.6% | 63.6% / 87.4% | 0.0% / 0.6% |
部分的なNPU割り当てテストを、 --include演算子 オプション Neutronコンバータ 量子化された ResNet18 モデル上。
特定の Conv2D レイヤー以外のレイヤーを NPU に割り当てると、推論のパフォーマンスが低下することがわかりました。
| ケース | NPU割り当て | 結果 | 精度トップ1 / トップ5 |
| ベースライン | なし(すべてCPU) | ー(ベースライン) | 63.6 / 87.4 % |
| CASE 1 | 即日 | 悪い | 0.0 / 0.6 % |
| CASE 2 | 入出力形状が[1×56×56×64]であるConv2Dレイヤー | 良い | 64.0 / 87.4 % |
| CASE3 | CASE 2 + レイヤーの追加 | 悪い | 0.0 / 0.6 % |
| 事例4 | CASE 2 + その他のConv2Dレイヤー | 悪い | 0.0 / 0.8 % |
サポートしていただき誠にありがとうございます。
よろしくお願いします、
涼介
こんにちは、
i.MX95 はまだ試作段階であるため、サポートを提供することはできませんのでご了承ください。詳細については、お近くの NXP セールス/NXP FAE にお問い合わせください。
よろしくお願いいたします。
アルド。