[深度学习] 神经网络中的 batch 和 epoch
·
参考文章为 神经网络中Batch和Epoch之间的区别是什么?
Sample
Sample是单个数据。即有意义的数据的最小单位。
训练数据集由许多Sample组成。
batch
batch是一个人为设定的超参数。
batch的意思是“批”,即把一定数目的Sample组合到一起,组成一个batch。batch_size表示一个batch中Sample的个数
简单来说,一个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的量决定)。例如,只有一个batch的epoch,称为批量梯度下降学习算法。
epoch 数量一般很大,通常是数百或数千,允许学习算法运行到模型的误差被充分地最小化。
文献和教程可能会设置为10,100,500,1000和更大数。
小结
Sample和batch和epoch的关系大致如图。
示例
假设有一个包含 200 个样本(Sample)的训练数据集,并且选择的batch量大小为 5 和 1000 个epoch。
这意味着训练数据集将分为 40 个batch,每个batch有 5 个样本。
每批 5 个样品后,模型权重将更新。
这也意味着一个epoch将涉及 40 个batch或 40 个模型更新。
有 1000 个epoch,模型将暴露(或传递)整个训练数据集 1000 次。在整个培训过程中,总共有 40000 batch。
更多推荐
所有评论(0)