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 =..
등장 이후 NLP 분야에 획기적인 한 획을 그었던 Transformer모델을 이미지 분야에 사용하기 위해 변형된 Vision Transformer이다. 해당 코드와 설명은 아래 게시물을 참고하였다. Vision Transfromer (ViT) Pytorch 구현 코드 리뷰 - 1 개요 이미지를 패치들로 나누어 Transformer Encoder에 적용한 Vision Transformer의 구현코드 리뷰입니다. github.com/FrancescoSaverioZuppichini/ViT FrancescoSaverioZuppichini/ViT Implementing Vi(sion)T(transformer). Contribute to Fran yhkim4504.tistory.com ResNet-18 Implem..
ResNet-18 모델을 구현하기 위해 단순화된 코드이다. 해당 코드와 설명은 아래의 게시물을 참고하였다. Resnet 18-layer pytorch 코드 리뷰 개요 Residual block을 사용한 Resnet의 코드 리뷰입니다. Resnet은 Block으로 되어있기 때문에 가장 간단한 resnet18을 이해하면 나머지도 이해할 수 있습니다. 원 코드는 torchvision 코드를 참조하였습니다. yhkim4504.tistory.com ResNet-18 Implementation Code¶code & description reference : https://yhkim4504.tistory.com/3 In [23]: import torch import torch.nn.functional as F imp..
einsum 연산을 통해 행렬, 벡터의 내적, 외적, 전치, 행렬곱등을 일관성있게 표현할 수 있다. 해당 코드는 전반적으로 아래 게시물을 참조하여 정리하였다. Einsum 사용하기 Torch나 Tensorflow로 짜여진 코드들을 보다보면 einsum() 연산이 포함되어 있는 경우를 볼 수 있습니다. 아주 가끔 보이는 방법이라 보일때마다 해석하는 법을 찾아보고는 했는데, 이번에 살펴보았던 baekyeongmin.github.io Einsum¶Einstein Summation Convention¶특정 index의 집합에 대한 합(시그마)연산을 간결하게 표시하는 방법 행렬, 벡터의 내적, 외적, 전치, 행렬곱 표현 Einstein Notation¶ $A_{ik} \cdot B_{kj}$를 하면 output ..