【小记】区分Batch、Epoch、Iterations

解释:对于一个有 2000 个训练样本的数据集。将 2000 个样本分成大小为 500 的 batch,那么就将该数据集划分为了 4 个
batch,且完成一个 epoch 需要 4 个 iteration。

【小记】区分Batch、Epoch、Iterations_第1张图片

Epoch

一个 epoch 指所有的数据送入神经网络中完成一次前向计算及反向传播的过程。

训练时一个 epoch 往往是不够的,因为将所有数据只迭代训练一次可能无法收敛,需要反复多次才能拟合收敛。

而随着 epoch 数量的增加,神经网络中权重更新迭代的次数增多,曲线可能会从最开始的不拟合状态,慢慢进入优化拟合状态,最终进入过拟合。

因此,epoch 的个数是非常重要的。但是对于不同的数据库来说,epoch 数量是不同的。不过 epoch 大小与数据集的多样化程度有关,多样化程度越强,epoch 应该越大。

Batch

当一个 epoch 的数据量太过庞大时,为了减轻计算机的压力,可以将它划分成许多个小块,每一个小块叫做一个 batch。

注意:batch size 和 number of batches 是不同的

  • batch size 是一个 batch 中有多少个样本数据
  • number of batches 是将一个完整数据集划分为几个 batch,number of batches = iterations

batch size 大小的选择也至关重要。为了在内存效率和内存容量之间寻求最佳平衡,batch size 应该精心设置,从而最优化网络模型的性能及速度。

Iterations

用 batch 完成一个 epoch 的次数就是 iterations

  • 一个 iteration 相当于取 batch size 个样本数据训练一次
  • 在一个 epoch 中,batch 个数和 iterations 数是相等的

总结

训练集有 10000 个样本,batch_size = 100,那么就有 10000 / 100 = 100 个 batch,走完一个 epoch 需要 100 次 iteration。

你可能感兴趣的:(深度学习,#,芝士就是力量)