深度学习中使用的batchsize, step(iteration), epoch 含义以及其关系

在深度学习中,常常会遇到batch size, step(iteration), epoch等词。对于很多新手不太清楚这些词之间的关系是什么。这里做一个简单介绍。

名词定义和含义
epoch一个epoch表示把所有训练样本运算学习一遍
batch size1次迭代(iteration/step)所使用的样本量
iteration/step表示每运行一个iteration/step,更新一次参数权重,即进行一次学习,每一次更新参数需要batch size个样本进行运算学习,根据运算结果调整更新一次参数。

举个例子:

比如总训练样本两有25600个,batch size为256,那么需要完整训练一次所有样本则需要 25600/256 = 100 iterations/steps

训练5个epoch的话,则总的iterations/steps为 25600*5/256 = 500

值得注意的是,在深度学习领域中,常用带mini-batch的随机梯度下降算法(Stochastic Gradient Descent, SGD)训练深层结构,它有一个好处就是并不需要遍历全部的样本,当数据量非常大时十分有效。此时,可根据实际问题来定义epoch,例如定义10000次迭代为1个epoch

参考:

https://blog.csdn.net/wcy23580/article/details/90082221

https://www.jianshu.com/p/73b57de58a3a

发表评论

匿名网友