Batch size(批尺寸):每批数据量的大小。DL通常用SGD的优化算法进行训练,也就是一次(1 个iteration)一起训练batchsize个样本,计算它们的平均损失函数值,来更新参数。计算梯度所需的样本数量,太小会导致效率低下,无法收敛。太大会导致内存撑不住,Batch Size增大到一定程度后,其下降方向变化很小了,所以Batch Size是一个很重要的参数。
iteration(迭代):1个iteration即迭代一次,也就是用batchsize个样本训练一次。
epoch(回合):1个epoch指用训练集中的全部样本训练一次。
人话:
如果有一个4096训练样本的数据集合。可以把batch size设置为256,那么完成一个epoch需要16个iteration。
示例:
示例
CIFAR10 数据集有 50000 张训练图片,10000 张测试图片。现在选择 Batch Size = 256 对模型进行训练。
- 每个 Epoch 要训练的图片数量:
- 训练集具有的 Batch 个数:
- 每个 Epoch 需要完成的 Batch 个数:
- 每个 Epoch 具有的 Iteration 个数:
- 每个 Epoch 中发生模型权重更新的次数:
- 训练 代后,模型权重更新的次数:
- 不同代的训练,其实用的是同一个训练集的数据。第 代和第 代虽然用的都是训练集的五万张图片,但是对模型的权重更新值却是完全不同的。因为不同代的模型处于代价函数空间上的不同位置,模型的训练代越靠后,越接近谷底,其代价越小。