← 모델 목록
수업 실습 2026-09-10 · image-classification
CNN 계열 (ResNet, ImageNet 사전학습)

torchvision resnet50 (ResNet50_Weights.DEFAULT)

ResNet50 Intel 풍경 이미지 분류 (딥러닝 미니대회 · 비교 실험, 중단)
모델
잔차 연결을 쓰는 50층 ImageNet 사전학습 CNN. fc만 6개 클래스로 바꿔 학습한 뒤 백본 전체를 풀어 미세조정하도록 설계
사용 목적
수업 딥러닝 미니대회에서 ConvNeXt와 고전 CNN(ResNet50)을 같은 조건으로 비교하려고 시작
코드
mnmms/dl
가중치
best_resnet50_s1.pth 90MB · 로컬 보관
best_resnet50_s1.pth (노트북 폴더 기준)
val_accuracy88.3%
학습 시간6분
추론 CPU / GPU측정 안 함

데이터

  • Kaggle Intel 풍경 6클래스 · test 3,000
  • train 11,228 · val 2,806 (seed 42)

학습

  • 1단계 fc만 · lr 1e-4 · 8 에폭 계획
  • 4 에폭에서 중단 (약 6분 기록)
  • GPU(CUDA)

결과

  • val accuracy 0.8525 → 0.8828 (4 에폭)
  • test accuracy [미확인] (학습 미완료)

배운 점

  • 대회 마감으로 2단계(전체 미세조정)는 돌리지 못함
  • 같은 4 에폭에서 ConvNeXt-tiny는 val 0.918
개요용도 의도한 용도: 미니대회에서 ConvNeXt와 ResNet50 비교 대상 사용자: 해당 없음 (학습용) 의도하지 않은 용도…

용도

  • 의도한 용도: 미니대회에서 ConvNeXt와 ResNet50 비교
  • 대상 사용자: 해당 없음 (학습용)
  • 의도하지 않은 용도: 사용 불가 (학습 미완료)

모델 정보

항목 값
베이스 모델 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 p…

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) …
항목 값
하이퍼파라미터 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
결과1단계 학습 곡선 (4 에폭에서 중단, TensorBoard) val 2,806장 기준, compare.log ·TensorB…
1단계 학습 곡선 (4 에폭에서 중단, TensorBoard)
1단계 학습 곡선 (4 에폭에서 중단, TensorBoard)

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
  • test accuracy: [미확인] (학습이 끝나지 않아 측정하지 않음)
  • 노트북 메모(wt_deep_7.ipynb): "Stage 1(freeze) 진행 중 epoch 4/8"에서 기록이 끝남

추론 성능 (CPU / GPU)

측정 안 함.

장비 장비 이름 배치 크기 지연 시간 (샘플당, p50 / p95) 처리량 (샘플/초) 메모리 사용
CPU [미확인] - 측정 안 함 측정 안 함 측정 안 함
GPU [미확인] 32 측정 안 함 측정 안 함 측정 안 함
한계 · 배운 점한계 알려진 실패 유형: 학습 미완료. 1단계 4/8 에폭에서 멈춤 편향 / 공정성 이슈: 해당 없음 성능이 떨어지는 입력 조…

한계

  • 알려진 실패 유형: 학습 미완료. 1단계 4/8 에폭에서 멈춤
  • 편향 / 공정성 이슈: 해당 없음
  • 성능이 떨어지는 입력 조건: [미확인]
  • [🚩AI 설명] 중단 이유는 기록에 없습니다. 대회 마감(9/10 오전 9시)과 시각이 겹쳐 마감 때문으로 보입니다 [미확인]

배운 점

  • [🚩AI 설명] 같은 4 에폭 시점에서 ConvNeXt-tiny(분류기만 학습)는 val 0.918, ResNet50은 0.883으로, 분류기만 학습하는 단계에서는 ConvNeXt 특징이 더 바로 쓸 만했음 (두 실행의 val 구성은 다름)
  • [🚩AI 설명] 다음에 해 볼 것: 2단계(전체 미세조정)까지 돌려 test 정확도를 같은 3,000장으로 비교
사용 방법코드 셀 2개
In [1]모델 준비
m = resnet50(weights=ResNet50_Weights.DEFAULT)
m.fc = nn.Linear(m.fc.in_features, num_classes)
In [2]실행
python full_finetune_compare.py --model resnet50
Out[2] 출력 보기
=== 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

같은 과제·데이터셋 비교 image-classification · Kaggle: puneet6060/intel-image-classification · 3개

굵은 이름이 이 모델입니다. 주황 테두리가 그룹 안 최고값입니다.