본문 바로가기

분류 전체보기82

Pytorch-GradCAM 치트시트 이번에 신입 프로젝트를 진행하며 처음으로 GradCAM을 써봤는데 그 사용법에 대해 정리해보려 한다. 현재 pytorch에서 GradCAM을 구현한 레포 중 가장 대표적인 건 https://github.com/jacobgil/pytorch-grad-cam 이건데 사용법은 분명 다 나와있는데 조금 직관적이지 않다고 느껴 한 번 정리하고 싶었다.Pytorch GradCAM일단 설치부터 한다.pip install grad-cam 라이브러리 가져오고 적당히 설정을 한 다음import timmimport osimport randomfrom collections import defaultdictfrom importlib import import_moduleimport numpy as npimport pandas a.. 2024. 9. 7.
Swin Transformer: Hierarchical Vision Transformer using Shifted Windows(2021) 리뷰 ViT의 등장 이후 이를 베이스로 다양한 형태의 variants가 쏟아져 나오기 시작했다. 이번에는 그중 가장 대표적으로 알려진 backbone 중 하나인 Swin Transformer에 대해 리뷰해 보겠다. Background이전까지는 Abstract, Introduction 등 논문의 진행을 그대로 따라갔는데 ViT base backbone 연구모델은 대게 흐름이 비슷하다고 느껴 이번 글에서는 주요한 부분만 빠르게 짚어보겠다. ViT는 JFT-300M을 pretrain해 IM1K에 대해 SOTA를 달성했다. 하지만 이는 pretrain에 한정된 이야기이고 ViT의 고질적 단점 이자 장점 low bias to image = concerate to general information으로 인해 IM1K p.. 2024. 9. 1.
캐글 노트북에서 기존 터미널과 똑같이 split하기 이 글은 window or wsl에서 모델을 돌리면서 그 결과를 캐글에서 시각화하고 싶은 특이한 상황에 대처하기 위해 쓴 글이다.문제 상황모델을 풀로 학습시키면서 추가로 validation결과를 보고 싶어서 캐글에 기존 코드, 데이터를 전부 넣고 예측했는데 예측결과가 과하게 좋았다.확인해 보니 기존 valid set과 캐글에서 사용한 valid set의 라벨 비율, 그리고 dataset의 label 순서는 맞았지만 파일명 순서는 맞지 않았다. random seed, python version, numpy 같은 라이브러리 버전 등등 모두 확인했지만 문제는 없었고 투자한 시간에 대비 아무 성과가 없어 GPT와 스택오버 플로를 마구 뒤졌다.해결법놀랍게도 해결법은 어이없을 정도로 단순했다. 이번 코드에 과거 V.. 2024. 8. 26.
timm 정리 이미지 분류 모델을 만들 때는 backbone을 가져올 때 주로 timm을 사용할 때가 많다. torchvision은 최근 모델 업데이트가 느리고 mmdetection은 이미지 분류에 사용하기에는 수고가 너무 많이 든다고 생각한다.timm은 유명한 모델 아키텍처는 간단히 클래스로 간단히 불러올 수 있다. timm 모델 사용법##model.pyimport timmclass TIMM(nn.Module): def __init__(self, model): super().__init__() self.model = timm.create_model(model, pretrained=True, num_classes=1) self.layer = nn.Sigmoid() def.. 2024. 8. 25.