ResNet50 を用いたGrad-cam
5 views (last 30 days)
Show older comments
初めての質問投稿です。よろしくお願いいたします。
ドキュメンテーション(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の最終畳み込み層の指定に誤りがあるのだと思いますが、どの層を指定すれば良いのか、
お教え頂きたく思います。 よろしくお願いいたします。
0 Comments
Accepted Answer
Kenta
on 26 Apr 2020
こんにちは、私の方では問題なく実行できました。
>ResNetの最終畳み込み層の指定に誤りがあるのだと思いますが、どの層を指定すれば良いのか
こちら、matsuyamaさまのコードで正しいと思います。
一度、添付したファイルを実行していただけませんか。
ちなみに、学習過程でもCAMを作成し、次第に「よい特徴を学習していく」ことを示したデモもあります。
以下のURLもよければ参考にしてみてください。よろしくお願いいたします。
3 Comments
Kenta
on 26 Apr 2020
返信ありがとうございます。解決し、よかったです。タイトルがresnet50になってますが、18との間違いですかね?ほかの理由としてはある行をそれ単体で実行してしまっている(「セクションを実行」をしなければならない)などが考えられます。理由は置いておいて、grad-camやカスタムループと呼ばれるものの実行は若干不規則かもしれません。また進めるにあたって問題あれば連絡ください。
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!