从某种意义上说,批次大小的选择是随机性的度量:
似乎一种明智的策略是从较小的批量开始,在初始阶段进行大量的探索,然后逐步增加批量大小,对模型进行微调。
然而,我没有看到在实践中实施这一战略?结果是效率低下吗?或者用Dropout选择适当的学习速率调度器就足够好了吗?
发布于 2021-01-29 11:30:12
这是一个与学习速度相平衡的游戏,而你通常不会看到人们这么做的原因之一就是你想尽可能多地使用GPU。
通常倾向于从内存中的最大批次大小开始,然后相应地提高学习速度。这适用于“有效批处理大小”,例如,当您有4个GPU,每个GPU与batch_size=10一起运行时,您可能有一个nb_gpu * initial_lr的全局学习速率(与和或所有4个GPU的平均值一起使用)。
最后的“最佳方法”通常是特定于问题的--对于GAN类型的模型来说,小批处理可能不起作用,而对于某些基于视觉的任务,大批处理可能是缓慢的和次优的。
几乎所有时候都有文献支持使用小批处理大小。尽管这一想法得到了YannLe村的支持,但还是有意见分歧的。
如果您对更快的收敛感兴趣,还可以考虑其他一些技巧,玩循环学习。
https://datascience.stackexchange.com/questions/88656
复制相似问题