코드(깃허브)
https://github.com/LGMpr/Pre-trained-Resnet-with-CIFAR-10-Transfer-Learning-/blob/main/aa
Base(epoch 10)
1. train 85.9%, test 82.7%
** epoch 100짜리는 test 85.3%
Learning Scheduler(CosineAnnealingLR) (New mod1)
1. train 84.1%, test 80.4%
2. 해석 : Batch문에 넣다보니 너무 빠르게 아닐까. epoch별로 넣어보기. 그리고 사실 만든 이유를 고려하면 epoch 10 정도에서 유의미한 효과를 얻기는 어려울 것.
3. epoch별로 넣었을때(mod1.1) : train 85.9%, test 82.5%
4. Base랑 거의 차이가 없음. 위 생각처럼 epoch이 커져야 효과가 있을듯. epoch 10에서는 거의 안넣은거나 다름없음
이제 뭘 할수 있는지 ChatGPT에게 도움을...
weight_decay=1e-4(mod2)
1. train 86.6%, test 82.3%
2. 해석 : epoch이 작기때문에 유의미한 변동은 없음
Pretrained 모델 사용 시 BatchNorm 동결(mod3)
1. train 86.3%, test 82.2%
2. 해석 : epoch이 작기때문에 유의미한 변동은 없음
epoch 100(final)
1. train 98.7%, test 84.7%
2. 해석 : 지난 epoch 100보다 test가 안좋아졌다......
성과라면 epoch 50정도에서 learning curve 거의 수평(train 96정도). epoch 30정도면 유의미한 결과 볼듯
특이점은 loss가 유의미하게 낮았음(0.18, 0.03)
3. epoch 25에서 train 94%
불만족스러운 결과지만 고효율이 필요한 내 상황 대비 너무 많은 시간과 노력이 들어가고 있기에 일단 여기까지만
이런 식으로 하면 된다! 는 확실히 알았음. 이제 다시 이론과 논문으로 돌아가서 연구!
마지막 미련으로 pretrained를 풀고 해봤다. epoch 30에서 train 77% test 73%로 눈에 띄게 안좋음

'코드' 카테고리의 다른 글
| Channel-wise dropout 코드 구현 (9) | 2024.12.29 |
|---|---|
| Pre-trained Resnet with Flowers102(Transfer Learning) (8) | 2024.12.29 |
| Pre-trained Resnet with CIFAR-10(Transfer Learning) (10) | 2024.12.28 |
| pytorch datasets (11) | 2024.12.10 |
| MNIST 홀짝분류 코드 구현 및 분석(pytorch) (3) | 2024.12.04 |