ในปัจจุบันการเทรน Deep Neural Network ใช้พื้นฐานอัลกอริทึมมาจาก Mini-Batch Stochastic Gradient Optimization เป็นส่วนใหญ่ และจำนวนตัวอย่างข้อมูลที่เราป้อนให้โมเดลในหนึ่งครั้ง หรือ 1 Mini-Batch คือ Hyperparameter สำคัญตัวหนึ่งที่เราต้องปรับจูน ซึ่งใน Library ต่าง ๆ จะใช้ชื่อว่า Batch Size
ในเคสที่เรามีข้อมูลขนาดใหญ่ เช่น รูปมีความละเอียดสูง ด้วยข้อจำกัดเรื่องขนาด Memory ของ GPU ทำให้เราต้องลด Batch Size ลง เพื่อให้เทรนโมเดลได้โดยที่ไม่ Out of Memory Error
การเพิ่มลดขนาด Batch Size นี้เอง ไม่ได้แค่มีผลให้โมเดลสามารถเทรนได้เท่านั้น แต่ยังมีผลในเรื่องอื่น ๆ อีก เช่น
- เวลาที่ใช้เทรน – Batch Size เล็กช้ากว่า
- Memory ที่ใช้ – Batch Size เล็กใช้น้อยกว่า
- และที่สำคัญ ความแม่นยำของโมเดล – Batch Size ขนาด <=32 แม่นยำกว่า

สรุปว่า การใช้ Batch Size ขนาดยิ่งใหญ่ยิ่งดี ให้เต็ม GPU Memory ที่สุด จะได้ใช้ GPU คุ้ม ๆ เทรน Deep Neural Network เร็ว ๆ ได้ผลลัพธ์ดี ๆ แต่ในทางปฏิบัติกลับไม่เป็นเช่นนั้น ขนาดของ Batch Size มีผลต่อความแม่นยำของโมเดล และเวลาที่ใช้ในการเทรนด้วย ดังตัวอย่าง Notebook ด้านล่าง