模型训练之batch 、batch size、epoch、 iteration

前言

        刚接触模型的训练的时候,对于这几个变量的设置:batch 、batch size、epoch、 iteration有点晕乎。在看别人的博客的时候,看着看着更晕乎了


下面说说自己的理解:
(1)batch:是指将数据集分成若干个批次,每个批次包含一定数量的样本,然后使用这些批次来训练模型,减小batch,会加大内存的消耗,某些程度上会加快模型的收敛,但可能会导致模型的泛化能力下降

这是我减小batch,使得batch size =4的时候,使用nvidia-smi后显示的显存使用情况

使用了将近22382MiB,GPU利用率在96左右

这是我增大batch ,使得batch size =2的时候,使用nvidia-smi后显示的显存使用情况



(2)batch size则是指每个批次中样本的数量。通常情况下,batch size越大(调小你的batch),模型的训练速度就越快,batch size越小,训练所花费的时间就越长(例如你有十万条数据,每次只用一个数据进行训练,时间能不长嘛),此外,batch size还会影响到模型的收敛速度和精度
(3)epoch:1个epoch等于将训练集中的全部样本训练一次,在一个epoch中,模型会对整个数据集进行一次前向传播和反向传播,更新所有的参数。
(4)iteration:1个iteration等于使用batch size个样本训练一次,那么想要训练完1个epoch,起码需要epoch/bathch size个iteration。

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

在实际训练中,我们往往是通过batch size来进行调整的,上个代码可能更好懂一点

        gen             = DataLoader(train_dataset, shuffle = shuffle, batch_size = batch_size, num_workers = num_workers, pin_memory=True,
                                    drop_last = True, collate_fn = unet_dataset_collate, sampler=train_sampler)

DataLoader是pytorch读取数据的核心,train_dataset是我们定义的数据集,batch size就是你一次读取到多少张图片来训练 ,例如你batch size =16 那么就会一次读取16张图片来训练,相当于将batch调小了,但是所需要的内存会变大哟

如果有小伙伴想要更深入了解DataLoader参数的含义,可以看我另一篇博客

pytorch学习笔记——数据读取机制之DataLoader与Dataset

 

大batch size的优缺点:

在提高稳定性的同时可能导致模型泛化能力下降
①大的batch size梯度的计算更加稳定
在微调的时候,大的batch size可能会取得更好的结果。模型训练曲线会更加平滑,因为在一定范围内,一般来说batch size越大,其确定的下降方向越准,引起训练震荡越小。batch size增大到一定程度,其确定的下降方向已经基本不再变化。
②大的batch size可能导致模型泛化能力下降
在一定范围内,增加batch size有助于收敛的稳定性,但是随着batch size的增加,模型的泛化性能会下降。若batch size设为最大(样本总个数),则每次更新参数都是相同的样本,下降方向基本确定,这会导致模型的泛化性能下降

小batch size的优缺点:

①小的batch size往往某种程度上会加快收敛

②较小的batch size往往会导致训练速度更慢

小batch size的缺点也很明显,例如随机梯度下降是连续的,且使用小批量,因此不容易并行化,这可能使得训练速度变慢。



参考博客链接:https://blog.csdn.net/weixin_45928096/article/details/123643006

点赞或收藏可以鼓励作者加快更新哟

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值