ResNet50 を用いたGrad-cam

14 views (last 30 days)
eri matsuyama
eri matsuyama on 26 Apr 2020
Commented: eri matsuyama on 26 Apr 2020
初めての質問投稿です。よろしくお願いいたします。
ドキュメンテーション(Grad-CAMでの深層学習による判定理由の解明)を見ながら、勉強しています。
実際にGoogleNetで、独自の画像を使って試して見たところ、上手き、感激しました。
一方、RseNet18で実施したく、ResNet18を読み込みました。
そして、ソフトマックス層の名前と最終畳み込み層の名前を以下のように記述してみました。
softmaxName = 'prob';
convLayerName = 'res5b_relu'; 
しかし,以下のようなエラーになります。
エラー: dlfeval (line 41)
[varargout{1:nout}] = deep.internal.dlfeval(fun,varargin{:});
エラー: G_CAM (line 105)
[convMap, dScoresdMap] = dlfeval(@gradcam, dlnet, dlImg, softmaxName, convLayerName, classfn);
ResNetの最終畳み込み層の指定に誤りがあるのだと思いますが、どの層を指定すれば良いのか、
お教え頂きたく思います。 よろしくお願いいたします。

Accepted Answer

Kenta
Kenta on 26 Apr 2020
こんにちは、私の方では問題なく実行できました。
>ResNetの最終畳み込み層の指定に誤りがあるのだと思いますが、どの層を指定すれば良いのか
こちら、matsuyamaさまのコードで正しいと思います。
一度、添付したファイルを実行していただけませんか。
ちなみに、学習過程でもCAMを作成し、次第に「よい特徴を学習していく」ことを示したデモもあります。
以下のURLもよければ参考にしてみてください。よろしくお願いいたします。
  3 Comments
eri matsuyama
eri matsuyama on 26 Apr 2020
こちらこそ、ありがとうございます。
お察しの通り、行単体で実行している事が原因のような気がいたします。
他に怪しい箇所が見当たりませんので。アドバイスを頂けて、本当に助かりました。
タイトルの件ですが、当初resnet50で転移学習をしておりました。学習データ数が1000程ですので、resnst50より18の方が良いかと考えており...タイトルを間違えて
しまいました。申し訳ありません。今後ともよろしくお願いいたします。

Sign in to comment.

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!