ResNet-50

구성 요약

  1. 초기 단계(Stem) 7×7 Conv(stride=2, 채널=64) Max Pooling(3×3, stride=2)
  2. Conv2_x 블록 3개의 Bottleneck Block
  3. Conv3_x 블록 4개의 Bottleneck Block
  4. Conv4_x 블록 6개의 Bottleneck Block
  5. Conv5_x 블록 3개의 Bottleneck Block . 분류 헤드(Classier) Global Average Pooling + FC(1000 클래스)

왜 마지막 레이어를 수정할까?

기본적으로 ResNet-50(그리고 대부분의 ImageNet에 맞춰 사전학습된 모델)의 마지막 출력 차원(Output dimension)은 1000개로 설정되어 있습 니다. (ImageNet의 클래스 수가 1000개이기 때문) 하지만 우리가 원하는 문제(예: 고양이 vs 개 구분, 10가지 종류의 사물 분류 등)는 클래스 수가 다를 수 있습니다. 따라서 최종적으로 분류해야 할 클래스 수에 맞게 마지막 레이어(Fully Connected Layer)를 바꿔서 설정해야 합니다.

어떻게 마지막 레이어를 수정할까?

resnet50.fc는 ResNet-50 모델의 마지막 완전 연결(FC) 레이어를 의미합니다. resnet50.fc.in_features는 이 마지막 레이어가 입력으로 받는 채널(특징)의 수를 알려줍니다. 예를 들어, ResNet-50은 일반적으로 2048개의 특징 을 마지막 레이어에 전달합니다(실제 구현에 따라 다를 수 있지만, 보통 2048). nn.Linear(num_features, 10)은 입력으로 num_features(예: 2048)개를 받아서, 최종 출력(클래스 수)으로 10개를 내보내는 새로운 레이어를 만드 는 코드입니다. 즉, 원래는 nn.Linear(2048, 1000) 형태였다면, 이제 nn.Linear(2048, 10)으로 변경하는 것입니다


https://docs.google.com/presentation/d/17J09EXbx2v4XVa2O5u3vFA7nsRzk2d9yRRwyXo9lIrk/edit?slide=id.g36d9bdee64b_7_2#slide=id.g36d9bdee64b_7_2

Attention U-Net 분석 발표자료


Activity Learning