구성 요약
기본적으로 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 분석 발표자료