Epoch:
一个epoch指代所有的数据送入网络中完成一次前项计算及反向传播的过程。由于一个epoch太大我们会将它分成几个较小的batches。为什么需要多个epoch?是因为在训练的时候,将所有数据迭代训练一次是不够的,需要反复多次才能拟合收敛。在实际训练中,我们将所有数据分成几个batch,每次送入一部分数据,梯度下降本身就是一个迭代过程,所以单个epoch更新权重是不够的。
下图展示了使用不同个数epoch训练导致的结果。
Batch Size:
batch是每次送入网络中训练的一部分数据,而batch size就是每个batch中训练样本的数量。batch size 和batch不是同一个概念。
Iterations:
batch就是iterations。
1个epoch/batch=batch size
例如:我们有2000个数据,分成4个batch,那么batch size就是500。运行所有的数据进行训练,完成1个epoch,需要进行4次iterations。