batchsize:批量大小将决定我们一次训练的样本数目。
batch_size将影响到模型的优化程度和速度。
作用:
batchsize的正确选择是为了在内存效率和内存容量之间寻找最佳平衡。
Batch_Size的取值:
全批次
如果数据集比较小,我们就采用全数据集。全数据集确定的方向能够更好的代表样本总体,从而更准确的朝向极值所在的方向。
注:对于大的数据集,我们不能使用全批次,因为会得到更差的结果。
迷你批次
选择一个适中的Batch_Size值。就是说我们选定一个batch的大小后,将会以batch的大小将数据输入深度学习的网络中,然后计算这个batch的所有样本的平均损失,即代价函数是所有样本的平均。
随机(Batch_Size等于1的情况)
每次修正方向以各自样本的梯度方向修正,横冲直撞各自为政,难以达到收敛。
适当的增加Batch_Size的优点:
1.通过并行化提高内存利用率。
2.单次epoch的迭代次数减少,提高运行速度。(单次epoch=(全部训练样本/batchsize)/iteration=1)
3.适当的增加Batch_Size,梯度下降方向准确度增加,训练震动的幅度减小。
经验总结:
相对于正常数据集,如果Batch_Size过小,训练数据就会非常难收敛,从而导致underfittin