首先,明确一点,deep learning中的最优化算法都是靠迭代得到的最优解(或次优解)。
一般来讲,我们的dataset很大,一次全丢进去训练有困难。因此需要拆分成数个小数据集,这种小数据集叫batch。
所有的batch,也就是整个dataset经过一次(正向传播和反向传播)训练,叫作epoch。也许诸位有疑问,定义epoch干啥,这是因为,有时候,一次epoch的训练是不够的,需要数次epoch周期的训练才能达到效果。
而iterations(迭代次数)就等于数据集拆分的batch数。也就是数据集要经过多少次迭代才能训练完。
可以看出,batch是指数据集的一个子集,是衡量数据集大小的单位。而epoch和iterations是衡量的是训练过程。一个epoch包含数个iterations。
另外需要注意的是,一个batch的数据用来为模型计算一次梯度下降更新。
更具体的,可以参考这篇文章:batch-size-vs-epoch-vs-iteration