深度学习之batch size、iterations、epochs

        根据自己的深度学习经历写一下:batch size、iterations、epochs

        深度学习算法训练是迭代的,在训练时会多次使用模型获取结果,以期得到最优化的结果。

1.batch size

        batch_size:每次训练所选取的样本数,通俗点讲就是一个 batch中的样本总数,一次输入进网络的样本数,一般设置为2的倍数(2,4,8,16,32,64,128,......)

        注意,由于Batch Normalization层的存在,batch_size一般设置为2的倍数,并且不能为1

2.iteration

        iteration:训练完全部数据需要迭代的次数,通俗点讲一个iteration就是使用batch_size个样本把网络训练一次,iteration就是整个数据集被划分成的批次数目,数值上等于dataset / batch_size

        全部的样本数据(dataset),按照batch_size进行切片,划分成iterations块。每个iteration训练结束后都会更新一次模型的参数,每一次迭代得到的结果都会被作为下一次迭代的初始值

        一个iteration = 一个batch_size的数据进行一次forward propagation和一次backward propagation

3.epoch

        epoch:前向传播和反向传播过程中所有批次的训练迭代次数,一个epoch就是整个数据集(dataset)的一次前向传播和反向传播,通俗点讲,epoch指的就是训练过程中全部数据将被送入网络训练多少次

        整个数据集(dataset)在模型中传递一次是不够的,数据集是有限的,需要将整个数据集在同样的模型中传递多次,对模型参数更新多次,这样才有可能得到最优化的结果

        如果epoch太小,网络有可能发生欠拟合;如果epoch太大,则有可能发生过拟合。具体怎么选择要根据实验结果去判断和选择,对于不同数据集选取的epoch是不一样的

4.举例

        假设有1600个训练样本,batch_size设置为16,epoch设置为100,那么每一个epoch(轮数)就会训练1600 / 16 = 10 个 iteration,全部训练样本(1600)会被这样训练100个轮次,那么一共会有100 * 10 = 1000 个iteration,发生1000次钱箱传播和反向传播。

总结:

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

        iteration是使用一个batch数据对模型进行一次参数更新的过程,被称为“一次训练”

        epoch使用训练集的全部数据对模型进行一次完整训练,被称为“一代(轮)训练”

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值