参考文章为 神经网络中Batch和Epoch之间的区别是什么?

Sample

Sample单个数据。即有意义的数据最小单位

训练数据集由许多Sample组成。

batch

batch是一个人为设定超参数

batch的意思是“批”,即把一定数目的Sample组合到一起,组成一个batch
batch_size表示一个batchSample的个数

简单来说,一个batch就是一定数目的Sample集合

另外,batch的大小与梯度下降的种类有关:

  • 批量梯度下降 —> batch_size=训练集的大小(整个训练集作为一个batch)
  • 随机梯度下降 —> batch_size= 1(每个batch中只有一个Sample
  • 小批量梯度下降 —> 1 <batch_size<训练集的大小(每个batch中Sample的个数大于1小于训练集Sample的总数)

epoch

epoch是一个人为设定超参数

epoch定义了学习算法整个训练数据集中的工作次数
一个epoch表示,训练集中的每个Sample都有机会更新内部模型参数。
epoch由一个或多个batch组成(由batch中包含的Sample的量决定)。例如,只有一个batchepoch,称为批量梯度下降学习算法。

epoch 数量一般很大,通常是数百或数千,允许学习算法运行到模型的误差被充分地最小化。
文献和教程可能会设置为10,100,500,1000和更大数。

小结

Samplebatchepoch的关系大致如图。
在这里插入图片描述

示例

假设有一个包含 200 个样本(Sample)的训练数据集,并且选择的batch量大小为 51000epoch

这意味着训练数据集将分为 40batch,每个batch5 个样本。
每批 5 个样品后,模型权重将更新。

这也意味着一个epoch将涉及 40batch40模型更新

1000epoch,模型将暴露(或传递)整个训练数据集 1000 次。在整个培训过程中,总共有 40000 batch

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐