gradcamの平均

2 次查看(过去 30 天)
拓 青柳
拓 青柳 2022-11-2
编辑: 拓 青柳 2022-11-2
深層学習によるX線画像の2クラス分類及び回帰を行っております。
データセットのうち一部をテストデータとして取り置き、残りを用いて5分割交差検証を実施、5つのモデルでテストデータに対する推測を実施しています。
それに合わせてgradcamも5つのモデルのものを平均しようとしており、2クラス分類ではうまくいったのですが、同じやり方で回帰でも行おうとするとgradcamの平均というよりそれぞれのモデルで少しでも重要だと判断された特徴が合計され全て示されているようなものになってしまいます。
2クラス分類に比べ、回帰の方ではscoreMapが白飛びしており、特徴の重要度が一律になっているように見え、ここに原因があると考えられるのですが、対処がわかりません。ご教示ください。
なお下記のコードは回帰モデルで実行したものですが、上記の通り2クラス分類でも同様に実施しております。
%%
s=24;
for i=1:s
net=netTransfer;
testheart = XTest(:,:,:,i);
predLAAo = predict(net,testheart);
trueLAAo = YTest(i);
RI = imref2d(size(testheart));
RI.XWorldLimits = [0 224];
RI.YWorldLimits = [0 224];
featureLayer = 'activation_49_relu';
reductionLayer = 'new_fc';
reductionFcn = @(x)x;
scoreMap = gradCAM(net,testheart,reductionFcn, ...
'ReductionLayer',reductionLayer, ...
'FeatureLayer',featureLayer);
ax(1) = subplot(1,2,1);
imshow(testheart,RI)
title("True LAAo = " + trueLAAo + '\newline Pred LAAo = ' + round(predLAAo,2))
colormap(ax(1),'gray')
ax(2) = subplot(1,2,2);
imshow(testheart,RI)
hold on
imagesc(rescale(scoreMap),'AlphaData',0.5);
colormap(ax(2),'jet')
title("GradCAM")
hold off
pathname='C:\Users\shinb\Documents\MATLAB\DeepLearning_evalkit\DeepLearning_evalkit\regression\gradcam\';
extension='.jpg' ;
filename=[pathname,num2str(i),extension];
imwrite(scoreMap,filename);
end
%%
%gradcammapのセル配列への読み込み
s=5;
t=24;
A=cell(s,t);
for j=1:t
for i=1:s
pathname='C:\Users\shinb\Documents\MATLAB\DeepLearning_evalkit\DeepLearning_evalkit\regression\gradcam_regression_lat_';
pathname2='val\';
extension='.jpg';
filename=[pathname,num2str(i),pathname2,num2str(j),extension];
A{i,j}=imread(filename);
end
end
%%
%セル配列のファイルへの保存
filename='map';
writecell(A,filename);
%%
s=24;
for i=1:s
scoreMap=A{1,i}*0.2+A{2,i}*0.2+A{3,i}*0.2+A{4,i}*0.2+A{5,i}*0.2;
testheart = XTest(:,:,:,i);
predLAAo = ave(i);
trueLAAo = label(i);
RI = imref2d(size(testheart));
RI.XWorldLimits = [0 224];
RI.YWorldLimits = [0 224];
ax(1) = subplot(1,2,1);
imshow(testheart,RI)
title("True LAAo = " + trueLAAo + '\newline Pred LAAo = ' + round(predLAAo,2))
colormap(ax(1),'gray')
ax(2) = subplot(1,2,2);
imshow(testheart,RI)
hold on
imagesc(rescale(scoreMap),'AlphaData',0.5);
colormap(ax(2),'jet')
title("GradCAM")
hold off
pathname='C:\Users\shinb\Documents\MATLAB\DeepLearning_evalkit\DeepLearning_evalkit\regression\gradcam\';
extension='.jpg' ;
filename=[pathname,num2str(i),extension];
saveas(gcf,filename);
end

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Pattern Recognition and Classification 的更多信息

产品


版本

R2022b

Community Treasure Hunt

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

Start Hunting!