cellに格納された​すべての配列にGra​d-camを適用する​方法

11 views (last 30 days)
KM
KM on 17 Nov 2022
Commented: KM on 30 Nov 2022
現在、1000*1のcell配列の中に、120*180 doubleのデータが1000個格納されており、そのデータそれぞれにGrad-camを適用させる方法を模索しています。
1つのデータに対してであれば以下のコードでできるのですが、1000個もあるため、一括でできる方法をご教授いただきたいです。
[class,score] = classify(net,data);
map = gradCAM(net,data,class);
可能であれば、それぞれの結果(map)も元データと同様に1000*1のcell配列に格納したいです。
よろしくお願い申し上げます。

Accepted Answer

Hernia Baby
Hernia Baby on 17 Nov 2022
Edited: Hernia Baby on 17 Nov 2022
cellfun をご使用ください
YourCell = ...  % ここに1000×1のcell配列
net = ... % ここに使用するnet
C_map = cellfun(@(x) MyGradCam(net,x),YourCell,'UniformOutput',false);
function map = MyGradCam(net,data)
[class,score] = classify(net,data);
map = gradCAM(net,data,class);
end
  4 Comments
Hernia Baby
Hernia Baby on 17 Nov 2022
一点、確認させてください
netCNNもcell型で格納されていますか?
KM
KM on 30 Nov 2022
お返事大変遅くなり申し訳ございません。
ご回答いただきありがとうございました。
試行錯誤してみたところ、
C_map = cellfun(@(x) gradCAM(netCNN,x,class, ...
'ReductionLayer',reductionLayer, ...
'FeatureLayer',featureLayer),data,'UniformOutput',false)
で解決しました。
netCNNはcellではなくLayerで定義されています。

Sign in to comment.

More Answers (0)

Categories

Find more on Deep Learning Toolbox in Help Center and File Exchange

Products


Release

R2021b

Community Treasure Hunt

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

Start Hunting!