pretrained vision model 메뉴
torchvision 이 수십 architecture 의 pretrained weight ship. 가장 자주 잡을 네 가족:
- ResNet (resnet18/34/50/101/152) — 일꾼. 신뢰할 만, 잘 이해됨, 모든 backend 에서 빠름. 새 task 의 default 시작점.
- EfficientNet (efficientnet_b0..b7, _v2_*) — 더 나은 accuracy/parameter trade-off. model size 중요할 때 (mobile deploy, large-scale inference).
- ConvNeXt (convnext_tiny/small/base/large) — ViT 와의 격차 좁힌 modern ConvNet. 놀랍게 강력, 같은 accuracy 에 ViT 보다 빠름.
- Vision Transformer (vit_b_16/32, vit_l_16, vit_h_14) — image 에 적용된 Transformer. 많은 task 의 state-of-the-art 지만 CNN 보다 data-hungry, parameter 당 살짝 느림.
적응 — head 교체가 architecture-specific
각 architecture 가 classifier head 를 다르게 노출:
- ResNet:
model.fc = nn.Linear(model.fc.in_features, num_classes) - EfficientNet:
model.classifier[1] = nn.Linear(model.classifier[1].in_features, num_classes) - ConvNeXt:
model.classifier[2] = nn.Linear(model.classifier[2].in_features, num_classes) - ViT:
model.heads.head = nn.Linear(model.heads.head.in_features, num_classes)
pattern: 먼저 print(model), final Linear 찾고 교체. convention 이 충분히 일관돼서 작은 helper 함수 한 번 짜서 reuse 가능.