使用PaddleDetection时如何合理地减少batch_size?
收藏
在社区经常可以看大,很多开发者使用PaddleDetection进行目标检测时,由于模型参数较多,图片较大的原因,很有可能会出现显存不够的情况。
对于这种显存不够情况,最简单的解决办法就是减小batch_size,但是batch_size可以无脑减小吗?
其实并不是的,无脑减小batch_size会导致模型精度改变。batch_size减半,理论上相应学习率也减半,训练精度才会和原先基本差不多。
DeepGeGe
已解决
2#
回复于2021-12
在PaddleDetection的FAQ文档中,我们可以看到【配置文件中原始学习率是适配多GPU训练(8x GPU),若使用单GPU训练,须对应调整学习率(例如,除以8)。】也是同样的原因,使用单卡训练,比起多卡,相当于batch_size减少,因此也需要减小响应的学习率。
0
收藏
请登录后评论
在PaddleDetection的FAQ文档中,我们可以看到【配置文件中原始学习率是适配多GPU训练(8x GPU),若使用单GPU训练,须对应调整学习率(例如,除以8)。】也是同样的原因,使用单卡训练,比起多卡,相当于batch_size减少,因此也需要减小响应的学习率。
lecun应该是写过一篇类似的文章,讨论了bs对于模型效果的影响,通常都是2的n次幂,计算机的gpu和cpu的memory都是2进制方式存储的,设置2的n次方可以加快计算速度。