深度学习中epoch、batch size和iterations之间的关系

深度网络在学习过程中,是利用优化算法进行前向后向传播的迭代训练的,对于庞大的数据集而言,网络如何迭代,迭代次数是多少,每次迭代多少,都是网络学习过程在需要理解的内容:

1、epoch:训练一个模型时所用到的全部数据;

一个epoch过程指的是将所有样本数据输入网络中,并完成一次前向及反向传播的过程。完整的任务模型训练,需要设置多个epoch,经过多轮迭代才会收敛。但是,由于一般情况下数据量非常大,一个epoch的计算量计算机无法负荷,所以,一般会分成几个比较小的batches,每次送入网络一部分数据;

2、batch:参数更新批次数据量;

使用训练集中的一部分样本对模型参数权重进行一次反向传播的更新,这一小部分样本被称为“一批数据”。“一批数据”的大小就是batchsize。

3、batch size:一个batch中的数据量;

batch就是每次送入网络中训练的一部分数据,即每个batch中训练样本的数量。所以,batch size的取值,跟计算机设备的配置有关,尤其是显卡,需要根据情况选择;

4、iterations:完成一次epoch所需的batch个数;

每一次迭代都是一次权重更新,每一次权重更新需要batch_size个数据进行前向反向传播更新参数。1个iteration等于使用batchsize个样本训练一次。

5、举例

一个数据集有5000个样本,batch size 为500,则iterations=10,epoch=1。

每个 epoch 要训练的图片数量:5000(所有图像)
训练集具有的 batch 个数: 5000/500=10
每个epoch 需要完成的 batch 个数: 10
每个 epoch 具有的 Iteration个数:10(完成一个batch,相当于参数迭代一次)
每个 epoch 中发生模型权重更新的次数:10
训练 10 个epoch后,模型权重更新的次数: 10*10=100
总共完成300次迭代,相当于完成了 300/10=30 个epoch

具体计算公式为:1个epoch = 训练样本的数量/batch_size
(ps:一个epoch是所有数据融入网络中完成一次前向计算及反向传播的过程)

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值