当前位置:   article > 正文

图像融合 densefuse python初学 ③ 综合一下 Epochs, Batchsize, Iterations_pythonbatchsize的选择

pythonbatchsize的选择

Epochs, Batchsize, Iterations

函数在该点处沿着该方向(梯度方向)变化最快:变化率(梯度模)最大。

梯度下降法是多次迭代求解的,梯度下降的迭代质量有助于使模型尽可能拟合训练数据。

梯度下降中有一个叫做学习率的参数,在迭代开始时,步长越大,学习率就越高。随着点的下降,步长变短,即学习率变小。

我们在训练模型时,如果训练数据过多,无法一次性将所有图像数据输入网络,为了解决这个问题,我们会将数据分成几个部分进行分批训练,即batch,使得每个批次的数据量是可以负载的。将这些batch的数据逐一输入到网络中,更新神经网络的参数,使得网络收敛。

Epoch

:在训练过程中所有训练集反复训练的次数。

一个Epoch指的是将所有的数据输入网络完成一次向前计算及反向传播。

由于完成一个epoch训练的周期较长(数据量大),一次性输入所有数据计算机无法负荷,所以将其分成多个batches。在实际训练时,将所有数据分成多个batches,每次输入一个batch大小的数据进行训练。

训练网络时,梯度下降本身就是一个迭代过程,所以经过单个epoch更新权重是不够的,即仅仅将所有数据迭代训练一次是不够的,需要反复训练多次才能使网络收敛。

对于不同的数据集来说,最佳的epoch是不同的。但是,epoch的大小和数据集的多样化程度有关,多样化程度越强,epoch也应该越大。

Batchsize

Batch是每次输入网络进行训练的批次,而batchsize是每个batch中训练样本的数量。注意batch size 和 batch numbers(iterations) 是不同的。

batch size:1、每次选取的数据集中的一小部分,也就是小批度下降中的那一小批。

                     2、一个 batch 中的样本总数,一次喂进网络的样本数

batchsize大小的选择也是非常重要的,为了在内存容量和内存效率之间取得最佳平衡,batchsize 应该用心设置,从而最优化网络模型的性能和速度。

————————————————

1.批梯度下降(BGD   -----  Batch  Gradient Decent)

概念:1、训练数据集的时候,将所有的数据集样本都训练一遍后更新损失函数,

           2、所有数据一起输入进行训练,也就是只有一个batch,batch内包含所有训练样本;

           3、遍历全部数据集算一次损失函数,然后算函数对各个参数的梯度,更新梯度

特点:这样效率低,计算开销大,速度慢,不适合在线机器学习。

           当数据量较小,计算机内存可以负载的时候,可以采用全数据效果更好。

batch英文直接翻译过来就是一批的意思,批梯度下降我们可以把这样一批看成是整个数据集。

2.随机梯度下降(SGD   ----  Stochastic Gradient Decent)

概念:1、每训练一个数据更新一次损失函数。

           2、随机训练,即每个batch内只有一个样本。

           3、每看一个数据就算一下损失函数,然后求梯度更新参数,这个称为随机梯度下降。

特点:这样的计算速度提高了很多,但是收敛性可能不太好,容易在最优点徘徊,很难get到那个最优点。难以达到收敛状态。这个方法速度比较快,但是收敛性能不太好,可能在最优点附近晃来晃去,hit不到最优点。两次参数的更新也有可能互相抵消掉,造成目标函数震荡的比较剧烈。

3.小批梯度下降(mini-batch Gradient Decent)

概念:1、把数据分为若干批,按批来更新损失函数,

           2、即将所有数据分成若干个batches,每个batch内包含一小部分训练样本;

           3、这种方法把数据分为若干个批,按批来更新参数,

特点:一个批中的一组数据共同决定了本次梯度的方向,下降起来就不容易跑偏,减少了随机性。另一方面因为批的样本数与整个数据集相比小了很多,计算量也不是很大。

这个方法是上面两个方法的折中方法。

minibatch,mini分批次训练精度略有损失

————————————————

Iterations

所谓iterations就是完成一次epoch所需的batch个数。batch numbers就是iterations。

举个例子来说,我们有12800个训练样本,分成100个batches,那么batchsize就是128。将所有的数据输入网络,训练完成一个epoch,需要经过100次iterations。

https://blog.csdn.net/dancing_power/article/details/97015723

https://blog.csdn.net/qingdujun/article/details/80638500

https://www.cnblogs.com/ldfhnb/p/11851043.html

https://blog.csdn.net/zqx951102/article/details/88918948

https://www.cnblogs.com/booturbo/p/12674754.html

https://blog.csdn.net/qq_40938646/article/details/102673786
 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/261723
推荐阅读
相关标签
  

闽ICP备14008679号