모델 변형 (ResNet 계열 크기)
모델 변형 (ResNet 계열 크기)
ResNet은 깊이에 따라 여러 변형이 있어요. torchvision에서는 크기별로 사전학습 모델을 제공하고, 용도(정확도 vs 속도)에 따라 고르면 돼요.
ResNet 계열 종류
- resnet18 — 가장 가볍고 빠름. 기본 잔차 블록 사용
- resnet34 — resnet18보다 깊은 기본 블록 구성
- resnet50 — 병목(bottleneck) 블록 도입. 널리 쓰이는 표준 백본
- resnet101 — resnet50보다 더 깊은 병목 구성
- resnet152 — 가장 깊은 구성. 원본 논문의 ImageNet 152층 모델
표기 규칙에서 숫자는 콘볼루션 층 수를 뜻해요(원본 논문은 32×(잔차 블록) + 마지막 FC 등으로 구성).
병목 블록 (50 이상)
resnet50부터는 3x3 콘볼루션 두 개 대신 1x1 → 3x3 → 1x1 병목(bottleneck) 블록을 사용해 파라미터를 줄이면서 깊이를 늘려요.
사용 예시
import torchvision.models as models
resnet50 = models.resnet50(weights=models.ResNet50_Weights.DEFAULT)
weights='DEFAULT'는 ResNet50_Weights.IMAGENET1K_V2와 동일해요. 학습된 백본으로 분류·검출·세그멘테이션 등 다양한 헤드를 붙여 쓸 수 있어요.