Grad-CAMで「​リダクション層の活性​化の勾配がすべてゼロ​です」とエラーがでま​すが、どう対処すれば​よいでしょうか?

6 ビュー (過去 30 日間)
KM
KM 2022 年 11 月 30 日
編集済み: KM 2022 年 12 月 6 日
現在、Grad-CAMを用いて、二次元データの学習における重要な部分の可視化を行っています。
しかしながら、以下のエラーメッセージがでてしまい、行き詰っています。
C_map = cellfun(@(x) gradCAM(net,x,categorical),cell_data,'UniformOutput',false)
エラー: gradCAM (125)
特徴層の活性化についてのリダクション層の活性化の勾配がすべてゼロです。ネットワーク内で、特徴層がリダクション層の前にあることを確認してください。
最初は層の指定をせず行っていましたが、以下のようにfeatureLayerとreductionLayerを指定したうえでやっても、同じエラーが出ました。
reductionLayer = 'softmax'
featureLayer = 'relu_10'
C_map = cellfun(@(x) gradCAM(net,x,categorical, ...
'ReductionLayer',reductionLayer, ...
'FeatureLayer',featureLayer),cell_data,'UniformOutput',false)
エラー: gradCAM (125)
特徴層の活性化についてのリダクション層の活性化の勾配がすべてゼロです。ネットワーク内で、特徴層がリダクション層の前にあることを確認してください。
'relu_10'は最後の畳み込み層から繋がっている活性化層です。
どのようにすれば解決するでしょうか。ご教授よろしくお願い申し上げます。

採用された回答

Hiro Yoshino
Hiro Yoshino 2022 年 11 月 30 日
gradCAM(net,x,categorical)
の部分の、categorical を何か指定されていますか? 分類問題かなと思いますが、クラスラベルを指定してください
gradCAM(net,x,"cat")
因みに、cellfun 無しでデータ1つに対して実行してもエラーが出ていますか?
  1 件のコメント
KM
KM 2022 年 12 月 6 日
編集済み: KM 2022 年 12 月 6 日
ご回答いただきありがとうございます。
大変申し訳ないのですが、こちらで解決しました。
実際に入力する際は、categoricalは指定してあります。また、1つでやってもエラーがでていました。
原因は、私のミスでネットワークの最後が、FC→Relu→Softmaxとなっていることでした。
Relu層を取り除いたら、正常に動作しました。
初歩的なミスでお騒がせし、申し訳ございませんでした。

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Find more on 時系列、シーケンス、およびテキストを使用した深層学習 in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!