CAM을 그리는 코드인데 bakward함수가 없어서 내 문제 해결할 수 있을 것 같음 (test시에 gradient를 계산해야 하는 상황.. torch.no_grad를 써야 gpu메모리 문제없이 학습가능해서) cam def cam(model, cam_topk=1, images=None, labels=None, truncate=False, shift=0.0): if images is not None: _ = model.forward(images) if labels is None: _, labels = torch.topk( model.pred, k=cam_topk, dim=1, largest=True, sorted=True) labels = labels[:, [cam_topk-1]] labels = labe..
GitHub - won-bae/rethinkingCAM: Official implementation of Rethinking Class Activation Mapping for Weakly Supervised Object Loca Official implementation of Rethinking Class Activation Mapping for Weakly Supervised Object Localization (ECCV 2020) - GitHub - won-bae/rethinkingCAM: Official implementation of Rethinking Class Ac... github.com github 코드에서 cam으로부터 bounding box를 추출하는 부분을 따왔다. 예상은 했다만 코..
모델의 activation visualization 부분을 분석해보자. simple_grad_cam def simple_grad_cam(features, classifier, target_class): """ calculate gradient map. """ features = nn.Parameter(features) logits = torch.matmul(features, classifier) logits[0, :, :, target_class].sum().backward() features_grad = features.grad[0].sum(0).sum(0).unsqueeze(0).unsqueeze(0) gramcam = F.relu(features_grad * features[0]) gramcam =..