batchsize和数据量设置比例_设置BatchSize

BatchSize对模型训练的速度和精度有显著影响。大BatchSize可加速训练,但可能导致模型泛化能力下降;小BatchSize训练过程不稳定,可能需要更小的学习率。使用Batch Normalization时,太小的BatchSize会降低模型效果。通常,BatchSize与学习率成正比关系,可通过调整二者找到最佳平衡点。训练策略包括初期使用大BatchSize快速收敛,后期减小BatchSize精细调整。
摘要由CSDN通过智能技术生成

BatchSize是非常重要的超参数,它不仅影响训练速度,也影响模型精度。本篇来讨论如何选择BatchSize。

BatchSize是否越大越好?

BatchSize一般指同时代入训练模型的实例个数,最直接的经验是如果GPU显存不大,又设置较大的BatchSize时直接报错“cuda runtime error(2): out of memory”。

是不是只要机器性能允许,就要设置尽可能大的Batch size呢?同时训练多个实例比逐个代入单个实例训练速度又能提高多少?

下图为使用不同的batchSize,在LeNet上训练mnist数据的效果,使用的框架为Theano。

可以看到,使用较大的batchSize的确可以提速,但是batchSize大到一定程度后,效果并不十分明显。

从图中可以看到如果将所有数据全部代入一次迭代(左图),则在训练集上的代价函数下降比较平滑,如果切分成多个Batch,代价函数不一定是下降的。这是由于每一个Batch中数据的难度不同,造成了代价函数忽大忽小。

如何选择batch大小?

两种极端的情况是BatchSize大小为1,每次只训练一个实例,或者BatchSize大小等于所有训练集数据大小,即每次训练所有数据。但更多的时候BatchSize设置在二者之间。

batchSize较小时,抖动大,训练过程有很大运气的成份,可能某个实例将模型带偏了,防止被模型被带偏的方法是使用较小的学习率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值