thanx to NIA
이번에는 이미지 사이즈와 러닝 레이트에 따른 Accuracy 변화를 보자. Image Size는 널리 알려진 사실이라 굳이 실험을 해 보지 않아도 충분히 알 수 있지만 실험해 보았다. 다음은 로그다.
1461/1461 ━━━━━━━━━━━━━━━━━━━━ 105s 64ms/step - accuracy: 0.2568 - loss: 2.8704
Epoch 2/50
1461/1461 ━━━━━━━━━━━━━━━━━━━━ 85s 58ms/step - accuracy: 0.3847 - loss: 2.2536
Epoch 3/50
1461/1461 ━━━━━━━━━━━━━━━━━━━━ 87s 59ms/step - accuracy: 0.4035 - loss: 2.1640
Epoch 4/50
1461/1461 ━━━━━━━━━━━━━━━━━━━━ 90s 61ms/step - accuracy: 0.4148 - loss: 2.1191
Epoch 5/50
1461/1461 ━━━━━━━━━━━━━━━━━━━━ 87s 59ms/step - accuracy: 0.4210 - loss: 2.0907
Epoch 6/50
1461/1461 ━━━━━━━━━━━━━━━━━━━━ 85s 58ms/step - accuracy: 0.4234 - loss: 2.0710
Epoch 7/50
1461/1461 ━━━━━━━━━━━━━━━━━━━━ 83s 57ms/step - accuracy: 0.4273 - loss: 2.0610
Epoch 8/50
1461/1461 ━━━━━━━━━━━━━━━━━━━━ 82s 56ms/step - accuracy: 0.4282 - loss: 2.0541
Epoch 9/50
1461/1461 ━━━━━━━━━━━━━━━━━━━━ 83s 57ms/step - accuracy: 0.4308 - loss: 2.0488
Epoch 10/50
1461/1461 ━━━━━━━━━━━━━━━━━━━━ 80s 55ms/step - accuracy: 0.4302 - loss: 2.0452
Epoch 11/50
1461/1461 ━━━━━━━━━━━━━━━━━━━━ 80s 55ms/step - accuracy: 0.4318 - loss: 2.0365
Epoch 12/50
1461/1461 ━━━━━━━━━━━━━━━━━━━━ 83s 57ms/step - accuracy: 0.4317 - loss: 2.0365
Epoch 13/50
1461/1461 ━━━━━━━━━━━━━━━━━━━━ 80s 54ms/step - accuracy: 0.4327 - loss: 2.0309
Epoch 14/50
1461/1461 ━━━━━━━━━━━━━━━━━━━━ 80s 54ms/step - accuracy: 0.4335 - loss: 2.0303
Epoch 15/50
1461/1461 ━━━━━━━━━━━━━━━━━━━━ 80s 55ms/step - accuracy: 0.4326 - loss: 2.0321
Epoch 16/50
1461/1461 ━━━━━━━━━━━━━━━━━━━━ 80s 55ms/step - accuracy: 0.4330 - loss: 2.0285
Epoch 17/50
1461/1461 ━━━━━━━━━━━━━━━━━━━━ 81s 55ms/step - accuracy: 0.4346 - loss: 2.0272
Epoch 18/50
1461/1461 ━━━━━━━━━━━━━━━━━━━━ 82s 56ms/step - accuracy: 0.4359 - loss: 2.0167
Epoch 19/50
1461/1461 ━━━━━━━━━━━━━━━━━━━━ 80s 55ms/step - accuracy: 0.4357 - loss: 2.0221
Epoch 20/50
1461/1461 ━━━━━━━━━━━━━━━━━━━━ 80s 55ms/step - accuracy: 0.4374 - loss: 2.0178
Epoch 21/50
1461/1461 ━━━━━━━━━━━━━━━━━━━━ 81s 55ms/step - accuracy: 0.4349 - loss: 2.0214
Epoch 22/50
1461/1461 ━━━━━━━━━━━━━━━━━━━━ 80s 55ms/step - accuracy: 0.4364 - loss: 2.0173
지금까지의 이미지 학습 시 width, height 모두 128로 낮춰서 했었다. mobileNetV2 권장 크기인 224로 했을 때 바로 accuracy 향상이 있음을 알 수 있다. 이론적으로는 224를 넘어서는 학습을 권장하지 않는다.
그러나 실무에서는 뭐든 해봐야 하는 법이다. 다만, MobileNet은 V3, V4가 나온 상황에서 다른 모델까지 굳이 시간을 들여 학습해야 할지는 미지수다. 운용, 운영 시스템 상황, 서비스 범위, 모델 크기, 기존 시스템과의 조화 등 고려해야 할 것이 많다. 이번 글에서 밝히지만 V2를 선택한 이유는 YOLOv8을 쓰는 이유와 같다. 변환 인자를 줄일 수 있기 때문이다. 안정버전과 다수의 검증이 있었던 버전의 경우 알고자 하는 인자 외엔 최대한 고정할 수 있다. IT 특성상 운영체제, CPU 브랜드 따라 안 되는 경우도 있고 모든 아키텍처를 알 수 없기에 end 단 검증으로 알 수밖에 없다.
자 이제 LR(Learning Rate)에 변화를 준다. 이미지 역시 224로 고정되었기 때문에 위 로그와 바로 이어서 비교하면 된다. 0.4374를 몇 에포크 만에 넘는지가 필자의 관심사이다.
LR을 0.0001로 해 보았다.
Epoch 1/50
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
I0000 00:00:1753410975.969537 9344 device_compiler.h:186] Compiled cluster using XLA! This line is logged at most once for the lifetime of the process.
1461/1461 ━━━━━━━━━━━━━━━━━━━━ 100s 60ms/step - accuracy: 0.1183 - loss: 3.5993
Epoch 2/50
1461/1461 ━━━━━━━━━━━━━━━━━━━━ 82s 56ms/step - accuracy: 0.2669 - loss: 2.7824
Epoch 3/50
1461/1461 ━━━━━━━━━━━━━━━━━━━━ 80s 55ms/step - accuracy: 0.3083 - loss: 2.5881
Epoch 4/50
1461/1461 ━━━━━━━━━━━━━━━━━━━━ 81s 55ms/step - accuracy: 0.3329 - loss: 2.4738
Epoch 5/50
1461/1461 ━━━━━━━━━━━━━━━━━━━━ 80s 55ms/step - accuracy: 0.3518 - loss: 2.3981
Epoch 6/50
1461/1461 ━━━━━━━━━━━━━━━━━━━━ 80s 55ms/step - accuracy: 0.3654 - loss: 2.3407
Epoch 7/50
1461/1461 ━━━━━━━━━━━━━━━━━━━━ 80s 55ms/step - accuracy: 0.3778 - loss: 2.2964
지금 바로 작가의 멤버십 구독자가 되어
멤버십 특별 연재 콘텐츠를 모두 만나 보세요.
오직 멤버십 구독자만 볼 수 있는,
이 작가의 특별 연재 콘텐츠