모델을 학습시키다가 메모리 부족 현상을 해결하기 위해서 batch size를 낮게 조절하다가 의문이 들었다. batch size를 작게 하면, 메모리 문제가 해결되지만 일반적으로 'batch size가 증가할 수록 학습의 불확실성이 감소한다.' 즉 학습이 잘된다고 알려져 있다. 하지만 여러 실험들을 보면, batch size가 클수록 좋기만 한 것도 아니고, Learning rate와도 상관관계가 있어보인다.
그런걸 떠나서 지금까지는 그렇게 배워왔고 다른 사람들도 그렇게 하니까 나도 그렇게 설정해왔는데,
왜 batch size를 2의 거듭제곱 (32, 64, 128, 256 등)으로 설정했는가에 대한 의문이 들었다!
이는 GPU의 메모리가 2의 거듭제곱이기 때문이다. 따라서 batch size를 2의 거듭제곱으로 샘플을 묶으면 GPU의 병렬 처리 능력을 활용하여 데이터 송수신의 효율을 높일 수 있다.
'Machine Learning' 카테고리의 다른 글
[WandB 오류] Error while calling W&B API: entity ()not found during upsertBucket (<Response [404]>) (1) | 2023.01.27 |
---|---|
[WandB] kaggle에서 WandB 사용하기 (0) | 2023.01.27 |
[Classification] Multi-class VS. Multi-label (0) | 2023.01.21 |