In [1]모델 준비
m = resnet50(weights=ResNet50_Weights.DEFAULT)
m.fc = nn.Linear(m.fc.in_features, num_classes)
best_resnet50_s1.pth 90MB · 로컬 보관best_resnet50_s1.pth (노트북 폴더 기준)| 항목 | 값 |
|---|---|
| 베이스 모델 | torchvision.models.resnet50(weights=ResNet50_Weights.DEFAULT) (ImageNet 사전학습, resnet50-11ad3fa6.pth 다운로드 로그) |
| 크기 · 변형 | ResNet50, 파라미터 약 2,560만 개 [🚩AI 설명] (torchvision 문서 기준 값) |
| 리비전 | torchvision 0.29.0+cu126 (uv.lock 기준) |
| 아키텍처 | ResNet50 백본 → fc = Linear(2048, 6) |
| 학습 방식 | 계획: 1단계 fc만 8 에폭 → 2단계 백본 전체 해제 + cosine lr(1e-5 → 1e-7) 15 에폭. 실제로는 1단계 4 에폭까지만 실행 |
| 프롬프트 · 에이전트 구성 | 해당 없음 |
ConvNeXt-small 카드와 같은 데이터·분할(시드 42)입니다.
| 항목 | 값 |
|---|---|
| 확보 방식 | 공개 데이터셋 그대로 |
| 출처 | Kaggle puneet6060/intel-image-classification |
| 직접 수집 내용 | 해당 없음 |
| 이용 조건 확인 | [미확인] |
| 규모 | seg_train 14,034 / seg_test 3,000 |
| 분할 | train 11,228 / val 2,806 / test 3,000 (compare.log 출력) |
| 레이블·클래스 분포 | buildings, forest, glacier, mountain, sea, street (거의 균형) |
| 전처리 | val·test: Resize((224, 224)) → ToTensor → Normalize(ImageNet 평균·표준편차). train: 여기에 RandomHorizontalFlip, RandomRotation(10), ColorJitter(brightness=0.1, contrast=0.1) 증강 추가 (ConvNeXt-small 스크립트에는 증강 없음) |
| 개인정보·민감정보 처리 | 해당 없음 (풍경 사진) |
| 항목 | 값 |
|---|---|
| 하이퍼파라미터 | 1단계 Adam(lr=1e-4), patience 3, 배치 32. 2단계(미실행) Adam(lr=1e-5) + CosineAnnealingLR(eta_min=1e-7), patience 4 |
| 에폭 / 스텝 | 1단계 8 에폭 중 4 에폭 |
| 학습 시간 | 약 6분 기록 (TensorBoard 첫 기록 08:32 ~ 마지막 08:38, 1 에폭 시작 시각은 없음) |
| 하드웨어 | GPU (device: cuda 로그). 장비는 이 컴퓨터의 NVIDIA GeForce RTX 4070 Laptop GPU 8GB로 보이나 로그에서 직접 확인하지는 않음 [미확인] |
| 프레임워크 | torch 2.14.0+cu126, torchvision 0.29.0, tensorboard 2.21.0 |
| 시드 · 재현 방법 | random_split 시드 42. python full_finetune_compare.py --model resnet50 |

val 2,806장 기준, compare.log·TensorBoard 값입니다.
| 에폭 | train loss | train acc | val loss | val acc |
|---|---|---|---|---|
| 1 | 1.2783 | 0.7254 | 0.9703 | 0.8525 |
| 2 | 0.8924 | 0.8563 | 0.8076 | 0.8724 |
| 3 | 0.7905 | 0.8722 | 0.7540 | 0.8767 |
| 4 | 0.7545 | 0.8779 | 0.7217 | 0.8828 |
wt_deep_7.ipynb): "Stage 1(freeze) 진행 중 epoch 4/8"에서 기록이 끝남측정 안 함.
| 장비 | 장비 이름 | 배치 크기 | 지연 시간 (샘플당, p50 / p95) | 처리량 (샘플/초) | 메모리 사용 |
|---|---|---|---|---|---|
| CPU | [미확인] | - | 측정 안 함 | 측정 안 함 | 측정 안 함 |
| GPU | [미확인] | 32 | 측정 안 함 | 측정 안 함 | 측정 안 함 |
m = resnet50(weights=ResNet50_Weights.DEFAULT)
m.fc = nn.Linear(m.fc.in_features, num_classes)
python full_finetune_compare.py --model resnet50
=== MODEL: resnet50 | device: cuda === num_classes: 6 ['buildings', 'forest', 'glacier', 'mountain', 'sea', 'street'] train/val/test: 11228 2806 3000 === [resnet50] Stage 1: head only (backbone frozen) === [resnet50][S1-head Epoch 1/8] train_loss=1.2783 train_acc=0.7254 | val_loss=0.9703 val_acc=0.8525 [resnet50][S1-head Epoch 2/8] train_loss=0.8924 train_acc=0.8563 | val_loss=0.8076 val_acc=0.8724 [resnet50][S1-head Epoch 3/8] train_loss=0.7905 train_acc=0.8722 | val_loss=0.7540 val_acc=0.8767 [resnet50][S1-head Epoch 4/8] train_loss=0.7545 train_acc=0.8779 | val_loss=0.7217 val_acc=0.8828
굵은 이름이 이 모델입니다. 주황 테두리가 그룹 안 최고값입니다.