神经网络中的Epoch、Iteration、Batchsize

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了神经网络中的Epoch、Iteration、Batchsize相关的知识,希望对你有一定的参考价值。

参考技术A 神经网络中epoch与iteration是不相等的

1)batchsize:中文翻译为批大小(批尺寸)。在深度学习中,一般采用SGD训练,即每次训练在 训练集中取batchsize个样本训练 ;

2)iteration:中文翻译为迭代, 1个iteration等于使用batchsize个样本训练一次 ;一个迭代 = 一个正向通过+一个反向通过

3)epoch:迭代次数, 1个epoch等于使用训练集中的全部样本训练一次 ;一个epoch = 所有训练样本的一个正向传递和一个反向传递

举个例子,训练集有1000个样本,batchsize=10,那么:训练完整个样本集需要:100次iteration,1次epoch。

训练神经网络中的Epoch和Iteration

参考技术A

神经网络的训练中我们常常能遇到 Epoch Iteration 这两个不同的词。

两个词都表示“轮次”的意思,显然这两个“轮次”的含义并不相同。

在解释这两个词的不同之前,我们先引入三种梯度下降策略:
1.Batch Grandient Descent(BGD,批梯度下降)
2.Stochastic Gradient Descent(SGD,随机梯度下降)
3.Mini-Batch Gradient Descent(MBGD,小批量梯度下降)

BGD :每次迭代的时候用所有的样本来参与参数的更新。这种方法需要同时把所有的样本都加载进内存进行计算,这样无疑会导致内存的负载过大。

SGD :每次迭代使用一个样本来对参数进行更新。这种方法虽然速度快,但单个样本的损失往往不能代表总体样本的损失情况,而且单个样本的损失往往容易受到噪声的影响,所以这种方法往往难以收敛。

MBGD :是对上面两种策略的折中,相当于每次迭代使用 batch_size 个样本来对参数进行更新。若是batch_size选择合适,则每次迭代的损失既能表征总体的损失的情况,也能降低内存的负载压力,提升内存的利用率,也提升网络训练的速度。

BatchSize :一次训练所选取的样本数。

Iteration :使用一个batch_size数量的样本训练一次。 一个Iteration,参数更新一次。

Epoch :所有的样本都训练一次,即(total / batch_size)个Iteration的训练。 一个Epoch,参数更新了(total / batch_size)次

以上是关于神经网络中的Epoch、Iteration、Batchsize的主要内容,如果未能解决你的问题,请参考以下文章

训练神经网络中的Epoch和Iteration

pytorch epoch, batch, iteration

深度学习基础Epoch, Batch, Iteration这三个概念的区别与联系

神经网络 专业术语解释(Step, Batch Size, Iteration,Epoch)

epoch,iteration,batch,batch_size

Deep Learning: Epoch, Batch, Iteration