Batch:训练模型时,如果训练数据较大,无法一次性将所有数据送入计算,那么我们会将数据分为几个部分,即Batch,进行训练,从而使每个批次的数据量是可以负载的。将这些batch的数据逐一计算训练,更新神经网络的权值,使得网络收敛。
Epoch:一个epoch指代所有的数据送入网络中完成一次前向计算及反向传播的过程。那么,为什么我们需要多个epoch呢?我们都知道,在训练时,将所有数据迭代训练一次是不够的,需要反复多次才能拟合收敛。随着epoch数量的增加,神经网络中权重更新迭代的次数增多,曲线从最开始的不拟合状态,慢慢进入优化拟合状态,最终进入过拟合。因此,epoch的个数是非常重要的。那么究竟设置为多少才合适呢?恐怕没有一个确切的答案。对于不同的数据库来说,epoch数量是不同的。但是,epoch大小与数据集的多样化程度有关,多样化程度越强,epoch应该越大。
Batch size:Batch就是每次送入网络中训练的一部分数据,而Batch Size就是每个batch中训练样本的数量。batch size 和batch numbers不是同一个概念~Batch size大小的选择也至关重要。为了在内存效率和内存容量之间寻求最佳平衡,batch size应该精心设置,从而最优化网络模型的性能及速度。
Iterations:所谓iterations就是完成一次epoch所需的batch个数。batch numbers就是iterations。简单一句话说就是,我们有2000个数据,分成4个batch,那么batch size就是500。运行所有的数据进行训练,完成1个epoch,需要进行4次iterations。
b
a
t
c
h
(
I
t
e
t
a
t
i
o
n
s
)
×
b
a
t
c
h
s
i
z
e
=
数
据
batch(Itetations)\times batchsize=数据
batch(Itetations)×batchsize=数据
深度学习中的Epoch、Batchsize、Iterations
最新推荐文章于 2022-04-13 15:22:20 发布