参考文章为 神经网络中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
。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)