首页IT科技深度学习(深度学习中epoch、batch、batch size和iterations详解)

深度学习(深度学习中epoch、batch、batch size和iterations详解)

时间2025-09-19 12:17:30分类IT科技浏览4294
导读:1.epoch...

1.epoch

在训练一个模型时所用到的全部数据;

备注:一般在训练时都要使用多于一个的epoch               ,因为在神经网络中传递完整的数据集仅仅一次是不够的                   ,只有将完整的数据集在同样的神经网络中传递多次      ,才会得到比较优秀的训练效果           ,当然也不行                    ,容易过拟合         ,所以要根据实验选择自己最合适的               。

epochs:

epochs被定义为向前和向后传播中所有批次的单次训练迭代                   。这意味着一个周期是整个数据的单次向前和向后传递      。简单说       ,epochs指的就是训练过程中数据将被“轮               ”多少次                     ,就这样           。

2.batch

Keras中参数更新是按批进行的            ,就是小批的梯度下降算法                    。如果准备跑模型的数据量太大   ,此时自己的电脑可能承受不住                     ,所以可以适当的将数据分成几块               ,就是分成几个batch         。每次的参数更新有两种方式:

第一种,遍历全部数据集算一次损失函数                  ,然后算函数对各个参数的梯度                  ,更新梯度       。这种方法每更新一次参数都要把数据集里的所有样本都看一遍   ,计算量开销大               ,计算速度慢                   ,不支持在线学习      ,这称为批梯度下降                     。

另一种           ,每看一次数据就算一下损失函数                    ,然后求梯度更新参数         ,这个称为随机梯度下降       ,这个方法速度比较快                     ,但是瘦脸性能不太好            ,可能在最优点附近晃来晃去   ,找不到最优点            。两次参数的更新也有可能互相抵消掉                     ,造成目标函数震荡的比较剧烈   。 

3.batch size

一个batch中的数据量大小即为batch size               ,一般为2n,比如32,64,128等等                     。

4.iterations

iterations(迭代):每一次迭代都是一次权重更新                  ,每一次权重更新需要batch_size个数据进行Forward运算得到损失函数                  ,在BP算法更新参数               。1个iteration等于使用batchsize个样本训练一次。

迭代   ,即batch size需要完成一次epoch的次数

(ps:其实对于一个epoch来说               ,batch和iterations数值上是相等的)

以下为上述知识的两个问题:

问题一:比如现在我们有一个2000大小的训练样本                   ,然后我们将这2000个样本分成4个大小为500的小数据集样本      ,此时epoch=1(暂且就用这个样本训练1次)                  。

请问以下数值分别为多少:①batch;②batch size;③iterations;

问题二:Fashion Mnist数据集有70000个灰度图像           ,其中60000张图片作为训练数据                    ,10000张图片作为测试数据                  。假设现在选择Batch Size=100对模型进行训练   。迭代30000次               。

每个Epoch要训练的图片数量:60000(训练集上的所有图像)

请问:①训练集具有的Batch个数;②每个Epoch需要完成的Batch个数;③每个Epoch具有的Iteration个数;④每个Epoch中发生模型权重更新的次数;⑤训练10个Epoch后         ,模型权重更新的次数;

答案公布于评论区                   。

总结:

1)不同Epoch的训练       ,其实用的是同一个训练集的数据      。

2)第1个Epoch和第10个Epoch虽然用的都是训练集的60000张图片                     ,但是对模型的权重更新值确是完全不同的           。

3)因为不同Epoch的模型处于代价函数空间上的不同位置            ,模型的训练迭代越靠后   ,越接近低谷                     ,其代价越小                    。

4)总共完成30000次迭代               ,相当于完成了30000/600=50个Epoch         。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
ontheroad怎么读([OnTheRoad]Linux C 的http服务器.)