코드

Pre-trained Resnet with Flowers102(Transfer Learning)

gmlee729 2024. 12. 29. 10:22

 

시작

1. 앞의 모델 기본구조 및 개념 동일

2. flowers102 모델에 적용해서 실행

3. 데이터 갯수 : train 1020, test 6149개 ??????????

  * label별로 찍어봤을때 정확하게 102개의 클래스가 10개씩 갖고있음. few-shot learning 용인가

ChatGPT 답변

결론
Flowers102 데이터셋의 Train 데이터보다 Test 데이터가 많은 이유는:
1. 데이터셋이 성능 평가를 주목적으로 설계되었기 때문.
2. 적은 Train 데이터로도 모델이 학습을 잘 수행하고 일반화할 수 있는지를 실험하기 위해.

4. 일단 튜닝하니까 돌아는간다. 값도 일단 나오긴함! train이 워낙 작다보니 epoch 늘려도 될듯

 

기본모델(base) epoch 30

1. train 91.8%, test 73.5%

2. 해석 : train이 적어서 그런가 Learning Curve가 늘쭉날쭉함. 최대 96%까지 올라갔다가 다시 92%까지 내려옴.. 

              가끔 100%도 나옴

              일단 cifar10에서 했던것중에 잘 안됐던거 해보기

 

layer wise learning rate(fc만 0.01, 나머지 0.0001 / decay 사용) (mod1) 

1. train 93.4%, test 84.7%

2. 해석 : 유의미한 결과. train 2%, test가 11%나 상승함

 

 

Learning Scheduler(CosineAnnealingLR) (mod2)

1. train 93.2%, test 86.5%

2. 해석 : test 2% 상승. 사실 lr 관련된 조작이어서 mod1과 같은 효과를 거둘 것 같아 기대를 안했는데 다시 상승함.

              이런 결과면 cifar10에도 다시 해볼만 할 것 같은데..

 

Pretrained 해제시

1. train 23.9%, test 18.8%

2. 해석 : train 데이터도 적고 learning curve도 굉장히 안좋음

 

일단 어느정도 성과를 거뒀으니 이제 다음 공부로!