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

7 次查看(过去 30 天)
KM
KM 2022-11-17
评论: KM 2022-11-30
現在、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配列に格納したいです。
よろしくお願い申し上げます。

采纳的回答

Hernia Baby
Hernia Baby 2022-11-17
编辑:Hernia Baby 2022-11-17
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 个评论
Hernia Baby
Hernia Baby 2022-11-17
一点、確認させてください
netCNNもcell型で格納されていますか?
KM
KM 2022-11-30
お返事大変遅くなり申し訳ございません。
ご回答いただきありがとうございました。
試行錯誤してみたところ、
C_map = cellfun(@(x) gradCAM(netCNN,x,class, ...
'ReductionLayer',reductionLayer, ...
'FeatureLayer',featureLayer),data,'UniformOutput',false)
で解決しました。
netCNNはcellではなくLayerで定義されています。

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Statistics and Machine Learning Toolbox 入門 的更多信息

产品


版本

R2021b

Community Treasure Hunt

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

Start Hunting!