(一)实验记录:卷积神经网络可视化cam和grad-cam

一、CAM

(一)实验记录:卷积神经网络可视化cam和grad-cam_第1张图片

以resnet18为例:

(一)实验记录:卷积神经网络可视化cam和grad-cam_第2张图片

(1)取出通过layer4的feature激活值,[1,512,7,7]

(2)取出fc的权重(weight_softmax),[1000,512]

(3)取出weight_softmax中预测为对应类别的权重,[1,512]

(4)权重和feature相乘得热力图cam,[1,512]*[512,49]=[1,49]

(5)再通过归一化,resize操作覆盖到原图上。

(一)实验记录:卷积神经网络可视化cam和grad-cam_第3张图片

二、grad-CAM

cam和grad-cam都是为了得到一组权重和feature相乘。cam需要修改模型(添加全局平均池化层)重新训练,而grad-cam是通过反向传播时hook的梯度来计算权重。

以vgg19为例子:vgg19模型分为两大块,features,classifier。

(1)从feature模块取出feature激活值,即第35层后的,[1,512,14,14]

打印模型名:https://blog.csdn.net/m0_37192554/article/details/104003947

(2)通过整个模型输出中最大的那个值进行backward

(一)实验记录:卷积神经网络可视化cam和grad-cam_第4张图片

(3)抓取第35层feature激活值的梯度,[1,512,14,14]

(一)实验记录:卷积神经网络可视化cam和grad-cam_第5张图片

(4)通过抓取的梯度计算权重,和feature相乘,计算cam热力图。

(一)实验记录:卷积神经网络可视化cam和grad-cam_第6张图片

(5)归一化后resize

 

 

 

你可能感兴趣的:((一)实验记录:卷积神经网络可视化cam和grad-cam)