본문 바로가기

분류 전체보기82

[Paper implementation] ResNet구현 부캠 초반부는 강의를 들으며 주어진 과제를 채워내는 식의 코딩이 전부이다. 멘토링 시간에 ResNet에 관해 리뷰하기도 했고 과제를 하며 ResNet을 부분적으로 구현해보기도 했기에 파이토치 공부 겸 ResNet을 Scratch부터 구현해 보았다. ResNet code class ResNet(nn.Module): def __init__(self, name="resnet", xdim=[3, 224, 224], ksize=3, cdims=[64, 128, 256, 512], layeriter=[3,4,6,3], hdim=1000, USE_BATCH_NORM=True): super().__init__() self.name = name self.xdim = xdim #means C, W, H self.cdims.. 2023. 4. 12.
[Pytorch] ImageFolder label기준으로 split하기 ResNet을 구현한 다음 학습을 시켜보았는데 한 에포크를 도는데 5분쯤 걸렸다. 단순 테스트용으로 돌리는건데 너무 시간이 길다고 생각해서 라벨을 쪼개려고 했는데 처음에는 Stratified한 방식으로 쪼개려 했는데 생각해보니 데이터셋으로 사용한 imagenet-mini는 이미 class별 이미지가 너무 적다 생각하여 label을 index로 지정해서 100개 정도만 뽑아서 데이터셋으로 만드려했다. 로컬폴더를 900개 제거하면 ImageFolder가 알아서 해주겠지만 뭔가 데이터셋을 제거한다는 방식이 세련되 보이지도 않았고 이후에도 train과 test를 쪼갤일이 많을 텐데 미리 연습 좀 해보자는 느낌으로 방법들을 서칭했다. 별거 아닌 고집이었는데 구현하는데 시간이 예상보다 오래 걸렸다. 이번에는 내가 .. 2023. 4. 10.
[부스트캠프] Semantic Segmentation 정리 2주동안 CV 기본지식으로 Image Classification부터 ViT까지 배웠는데 강의가 극한으로 압축되어 있어 나도 그렇고 다른 사람들 역시 많은 부분을 이해하지 못하고 넘겼다. 모든 부분은 디테일하게 짚고 넘어가는게 최선이지만 강의, 과제, 팀 활동이 계속해서 늘어나므로 디테일한 부분이나 구현을 제외하고 개념만 정리하고 느낌만 알아보는 식으로 가겠다. 이 후 여러 task 역시 이런식으로 정리할텐데 프로젝트를 진행하기 전 먼저 시야를 넓게 가져보기에는 좋은 방법인것 같다. Semantic Segmentation 아마 이글을 읽는 사람 중 이 용어가 의미하는 바는 없을거라 생각된다. 간단히 말하자면 "이미지의 픽셀별 분류"라고 생각하면 될것 같다.(엄밀히 말하자면 upsamplig을 거치므로 픽셀.. 2023. 4. 9.
[부스트캠프] ResNet 정리 이전에도 ResNet을 리뷰하고 포스팅한적이 있었는데 처음 읽은 논문이라 너무 rough하게 읽기도 했고 이번에 팀원들과 다시 한번 리뷰하며 좋은 인사이트를 많이 얻어서 기록차 생각나는대로 적어보려한다. 구현시 간과했던점 ResNet을 구현도 해봤는데 간과했던 점도 몇가지 체크해보겠다. ReLU는 두번째 weight layer에서 적용하지 않고 잔차 이후에 적용하는게 official이다. 전체 구조에서 점선표시된 부분이 projection layer로 1x1 conv에 추가적으로 stride=2를 적용하여야한다. Why resnet works? 논문리뷰 글을 적을때마다 어째서 이 모델이 좋은지 간략히 설명해왔었는데 ResNet은 당시 도저히 말을 이해 못해서 이 부분을 스킵했던 기억이 있다. 그리고 이번.. 2023. 4. 6.