![74d624263dbaf8165c9990c48c3a5326.png](https://i-blog.csdnimg.cn/blog_migrate/859bda77f87e905c03aac317e76665a7.jpeg)
众所周知,在深度学习模型训练的时候,一次性将所有的数据用于训练很明显是不靠谱的,因为算力跟不上,当然,一次用几条数据也是不靠谱的,因为数据小你可能走的方向显然会随机性更大,导致更新点横冲直撞,无法完成收敛。So,在训练的时候一般都是一个batch一个bath的来,这样学习到的分布才是可靠的,那么batch的大小对训练有啥影响呢?
下图是别人做的一个实验,对batch的大小进行参数控制,得到了一些运行指标。
![4922c42c8d550f76e5c30e859fcbc8ef.png](https://i-blog.csdnimg.cn/blog_migrate/a59159c25ad32e5d36dd9888a04d6a8d.jpeg)
从中可以看到:
1.Batch_Size 太小,算法在 200 epoches 内不收敛。
2. 随着 Batch_Size 增大,处理相同数据量的速度越快。
3. 随着 Batch_Size 增大,达到相同精度所需要的 epoch 数量越来越多。
4. 由于上述两种因素的矛盾, Batch_Size 增大到某个时候,达到时间上的最优。
5. 由于最终收敛精度会陷入不同的局部极值,因此 Batch_Size 增大到某些时候,达到最终收敛精度上的最优。
参考文献:
深度学习中的batch的大小对学习效果有何影响? https:// blog.csdn.net/u01041718 5/article/details/79533539 https:// blog.csdn.net/weixin_42 137700/article/details/84302045