在实时训练网络中显示CAM结果

在实时训练网络中显示CAM结果

paper: Learning Deep Features for Discriminative Localization

在这里插入图片描述

主要代码

def ComputeCAM(features, softmax_weight, class_ids):
    class_ids = class_ids.long()
    m = []
    for idx in class_ids:
        wei = softmax_weight[idx, :].unsqueeze(0)
        m.append(wei)
    tensor_m = torch.cat(m, dim=0).unsqueeze(2).unsqueeze(3)
    cam = tensor_m * features
    cam = cam.sum(dim=1).unsqueeze(1)
    cam =  (cam - cam.min()) / (cam.max() - cam.min())
    weight = torch.nn.functional.interpolate(cam, scale_factor=8, mode='bilinear', align_corners=False)  # reshape its size as input
    return weight
    
def GetCam(model, inputs):
    out, features = model(inputs)
    _, idx = torch.max(out, 1)
    params = list(model.parameters())
    softmax_weight = params[-2].squeeze()
    weight = ComputeCAM(features, softmax_weight, idx)
    return weight

if __name__ == "__main__":
    x = torch.rand(10, 3, 32, 32).to(device)
    z = GetCam(net, x)
    print(z.size())
完整代码链接: https://github.com/Jixianrui/CAM-with-ResNet

结果展示

时间原因,该结果为只训练了10个epoch之后的结果
在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值