YOLO_005 batch size : accuracy

by HJH

배치 사이즈와 정확도 관계는 이론적으로는 자료가 많지만 실무에서의 상황은 다양한 실험을 통해 알아야 한다고 생각한다. GPU 환경이나 cuda, python, tensor flow 버전 등 이론에서 고려하는 인자 외 다른 인자도 모두 알아야겠지만, 시장의 변화 속도가 더 빨라서 제품 만들다

난 경우가 아니라면, 딱히 알아볼 새도 없다. 그래서 틈틈이 시간을 내어 연구한다.



우선, 특정 상황에서의 8배 치 사이즈에서의 학습 로그이다. 보통 인공지능이 짜 주는 학습 스크립트의 경우 최소 60%가 넘는다. 그러나 이런 상황에서는 제품 개발용 실무적 노하우를 알아보기엔 신뢰성이 부족해진다. 누군가 시뮬레이션을 만들고, 또 수많은 실험으로 GPU 사용률에 관계되는 인자들에 대한 상관관계와 그리고 내가 하려고 하는 학습에 대한 점화식을 만들어서 수식에만 대입하면 어느 정도의 하드웨어를 쓰면 될지 궁금하다. 구글은 이미 만들어 놨을 것 같은데 이 데이터가 있으면 학습 요청 수가 확 줄어들 테니 오픈을 안 하는 것일 수도 있고, 아직 안 만들었는데 내가 먼저 해보는 것일 수도 있겠다.


실험에 쓰일 데이터 학습수는 클래스당 765개부터 7360개까지 다양하며, pre-trained class 는 제외했다. 테스트 벤치 스펙은 nvidia H100 CUDA12.4, TF2.15, Python 3.10, RAM 192Gb, GPU RAM 80Gb 다. 모든 에포트를 돌리지는 않고 early stop이 되게 하였다. accuracy는 30% 보다 낮게 나오는 상황 즉, 모델 크기를 35%로 축소(alpha=0.35) 하였다. 이 실험은 통하면 사실,

배치사이즈와 정확도의 상관관계 데이터 1개

를 뽑을 수 있다. 또 다른 실험을 해야 상관관계 데이터를 추가한다. 고작 1개지만, 위대한 여정의 작은 발자국이라 생각(정신승리) 삽질을 시작한다.



6475/23376 ━━━━━━━━━━━━━━━━━━━━ 1:11 4ms/step - accuracy: 0.1649 - loss: [23376/23376 ━━━━━━━━━━━━━━━━━━━━ 108s 4ms/step - accuracy: 0.2034 - loss: 3.1025 [Epoch 2/50 23376/23376 ━━━━━━━━━━━━━━━━━━━━ 95s 4ms/step - accuracy: 0.2583 - loss: 2.8156


Epoch 3/50 23376/23376 ━━━━━━━━━━━━━━━━━━━━ 93s 4ms/step - accuracy: 0.2662 - loss: 2.7832


Epoch 4/50 23376/23376 ━━━━━━━━━━━━━━━━━━━━ 94s 4ms/step - accuracy: 0.2705 - loss: 2.7652


Epoch 5/50 23376/23376 ━━━━━━━━━━━━━━━━━━━━ 97s 4ms/step - accuracy: 0.2732 - loss: 2.7596


Epoch 6/50 23376/23376 ━━━━━━━━━━━━━━━━━━━━ 94s 4ms/step - accuracy: 0.2742 - loss: 2.7561


Epoch 7/50 23376/23376 ━━━━━━━━━━━━━━━━━━━━ 93s 4ms/step - accuracy: 0.2758 - loss: 2.7545


Epoch 8/50 23376/23376 ━━━━━━━━━━━━━━━━━━━━ 95s 4ms/step - accuracy: 0.2758 - loss: 2.7474


Epoch 9/50 23376/23376 ━━━━━━━━━━━━━━━━━━━━ 94s 4ms/step - accuracy: 0.2774 - loss: 2.7472


Epoch 10/50 23376/23376 ━━━━━━━━━━━━━━━━━━━━ 93s 4ms/step - accuracy: 0.2768 - loss: 2.7452


Epoch 11/50 15533/23376 ━━━━━━━━━━━━━━━━━━━━ 31s 4ms/step - accuracy: 0.2775 - loss: 2.744123376/23376 ━━━━━━━━━━━━━━━━━━━━ 95s 4ms/step - accuracy: 0.2583 - loss: 2.8156


Epoch 3/50 23376/23376 ━━━━━━━━━━━━━━━━━━━━ 93s 4ms/step - accuracy: 0.2662 - loss: 2.7832


Epoch 4/50 23376/23376 ━━━━━━━━━━━━━━━━━━━━ 94s 4ms/step - accuracy: 0.2705 - loss: 2.7652


Epoch 5/50 23376/23376 ━━━━━━━━━━━━━━━━━━━━ 97s 4ms/step - accuracy: 0.2732 - loss: 2.7596


Epoch 6/50 23376/23376 ━━━━━━━━━━━━━━━━━━━━ 94s 4ms/step - accuracy: 0.2742 - loss: 2.7561


Epoch 7/50 23376/23376 ━━━━━━━━━━━━━━━━━━━━ 93s 4ms/step - accuracy: 0.2758 - loss: 2.7545


Epoch 8/50 23376/23376 ━━━━━━━━━━━━━━━━━━━━ 95s 4ms/step - accuracy: 0.2758 - loss: 2.7474


Epoch 9/50 23376/23376 ━━━━━━━━━━━━━━━━━━━━ 94s 4ms/step - accuracy: 0.2774 - loss: 2.7472


Epoch 10/50 23376/23376 ━━━━━━━━━━━━━━━━━━━━ 94s 4ms/step - accuracy: 0.2775 - loss: 2.7460


Epoch 12/50 23376/23376 ━━━━━━━━━━━━━━━━━━━━ 93s 4ms/step - accuracy: 0.2791 - loss: 2.7421


Epoch 13/50 23376/23376 ━━━━━━━━━━━━━━━━━━━━ 94s 4ms/step - accuracy: 0.2785 - loss: 2.7458


Epoch 14/50 23376/23376 ━━━━━━━━━━━━━━━━━━━━ 93s 4ms/step - accuracy: 0.2801 - loss: 2.7441



배치 사이즈를 16으로 늘였다.


11688/11688 ━━━━━━━━━━━━━━━━━━━━ 94s 7ms/step - accuracy: 0.2079 - loss: 3.0723

Epoch 2/50

11688/11688 ━━━━━━━━━━━━━━━━━━━━ 80s 7ms/step - accuracy: 0.2689 - loss: 2.7464

Epoch 3/50

11688/11688 ━━━━━━━━━━━━━━━━━━━━ 79s 7ms/step - accuracy: 0.2758 - loss: 2.7078

Epoch 4/50

11688/11688 ━━━━━━━━━━━━━━━━━━━━ 79s 7ms/step - accuracy: 0.2796 - loss: 2.6875

Epoch 5/50

11688/11688 ━━━━━━━━━━━━━━━━━━━━ 79s 7ms/step - accuracy: 0.2844 - loss: 2.6750

Epoch 6/50

11688/11688 ━━━━━━━━━━━━━━━━━━━━ 79s 7ms/step - accuracy: 0.2843 - loss: 2.6688

Epoch 7/50

11688/11688 ━━━━━━━━━━━━━━━━━━━━ 79s 7ms/step - accuracy: 0.2861 - loss: 2.6620

Epoch 8/50

11688/11688 ━━━━━━━━━━━━━━━━━━━━ 79s 7ms/step - accuracy: 0.2871 - loss: 2.6586

Epoch 9/50

11688/11688 ━━━━━━━━━━━━━━━━━━━━ 79s 7ms/step - accuracy: 0.2898 - loss: 2.6498

Epoch 10/50

11688/11688 ━━━━━━━━━━━━━━━━━━━━ 79s 7ms/step - accuracy: 0.2907 - loss: 2.6451

Epoch 11/50

11688/11688 ━━━━━━━━━━━━━━━━━━━━ 80s 7ms/step - accuracy: 0.2901 - loss: 2.6464

Epoch 12/50

11688/11688 ━━━━━━━━━━━━━━━━━━━━ 79s 7ms/step - accuracy: 0.2903 - loss: 2.6457

Epoch 13/50

11688/11688 ━━━━━━━━━━━━━━━━━━━━ 79s 7ms/step - accuracy: 0.2918 - loss: 2.6370

Epoch 14/50

11688/11688 ━━━━━━━━━━━━━━━━━━━━ 79s 7ms/step - accuracy: 0.2922 - loss: 2.6412

Epoch 15/50

11688/11688 ━━━━━━━━━━━━━━━━━━━━ 79s 7ms/step - accuracy: 0.2920 - loss: 2.6393

Epoch 16/50

11688/11688 ━━━━━━━━━━━━━━━━━━━━ 79s 7ms/step - accuracy: 0.2916 - loss: 2.6376

Epoch 17/50

11688/11688 ━━━━━━━━━━━━━━━━━━━━ 79s 7ms/step - accuracy: 0.2911 - loss: 2.6420



배치 사이즈를 32로 늘였다.


배치 사이즈가 계속 커져서 학습 데이터 수만큼 돼버리면 해당 샘플에 대해서 과적합이 된다. 그러나 뭐 샘플 수 자체가 모수의 크기라면 과적합이 되어도 괜찮다고 생각한다.


5844/5844 ━━━━━━━━━━━━━━━━━━━━ 92s 14ms/step - accuracy: 0.1995 - loss: 3.0936

Epoch 2/50

지금 바로 작가의 멤버십 구독자가 되어
멤버십 특별 연재 콘텐츠를 모두 만나 보세요.

brunch membership
HJH작가님의 멤버십을 시작해 보세요!

AISS(AI Security Sector) K-programmer. 아이쓰 프로그래머 분야를 한국에서 만들고 개척한 사람으로 기억되고 싶습니다.

429 구독자

오직 멤버십 구독자만 볼 수 있는,
이 작가의 특별 연재 콘텐츠

  • 총 41개의 혜택 콘텐츠
최신 발행글 더보기