模型中的超参数(epoch、batch_size、batch、Iteration),这次是真的看懂了!!!记录一下,分享给大家~

今天终于理解清楚深度学习中epoch、batch_size、batch、Iteration的概念了,以下是详细介绍:

epoch:

类似于随机过程中提到的一次实验:每次扔5个硬币,扔完这5个硬币是1次epoch,重复扔这5个硬币,就是进行多次epoch。

1个epoch指用训练集中的全部样本训练一次,5个epoch就是用训练集中的全部样本重复训练五次。

如果epoch=50,总样本数=10000,batch_size=20,则batch为500,即需要迭代500次。

batch_size:

训练集中的数据并不是一次性全部扔进网络,而是分批次送入。比如训练样本数=100,batch_size=20,则进行一次epoch,需要分5次送入数据,那么batch为5。即batch_size*batch=训练样本数。
batch_size指每批数据量的大小,用SGD的优化算法进行训练,也就是1 次batch训练batch_size个样本,计算它们的平均损失函数值,来更新一次参数。

iteration(同batch一个意思):

1次iteration即迭代1次,也就是用batch_size个样本训练一次。每一次迭代得到的结果都会被作为下一次迭代的初始值。

举例:

一个excel中包括200个样本(数据行)的数据,选择batch_size=5, epoch=1000, 则batch=40个,每个batch有5个样本,一次epoch将进行40个batch或40次模型参数更新,1000个epoch,模型将传递整个数据集1000次,在整个训练过程中,总共有40000次batch.

引用例子:

mnist 数据集有 60000 张训练数据,10000 张测试数据。现在选择 Batch_Size = 100 对模型进行训练。
每个 epoch 要训练的图片数量:60000(训练集上的所有图像)
训练集具有的 batch 个数: 60000/100=600
每个 epoch 需要完成的 batch 个数: 600
每个 epoch 具有的 Iteration 个数: 600(完成一个batch,相当于参数迭代一次)
每个 epoch 中发生模型权重更新的次数:600
训练 10 个epoch后,模型权重更新的次数: 600*10=6000
不同epoch的训练,其实用的是同一个训练集的数据。第1个epoch和第10个epoch虽然用的都是训练集的60000图片,但是对模型的权重更新值却是完全不同的。因为不同epoch的模型处于代价函数空间上的不同位置,模型的训练代越靠后,越接近谷底,其代价越小。
总共完成30000次迭代,相当于完成了 30000/600=50 个epoch

batch_size的选择原则:batch_size越大,batch越少,需要迭代的次数越少,训练时间越短。
batch_size越小,batch数量越多,耗时久,计算机占用内存大。

参考文章链接: https://www.cnblogs.com/leafchen/p/13927345.html

  • 7
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值