PyTorch DistributedDataParallel 多卡训练结果变差

2023 年 1 月 31 日
 yiyi1010

本想使用多卡训练,训练结果应该会更加好,但是我发现使用三张 3090 训练,网络模型不收敛, 这是因为学习率的原因吗?

2475 次点击
所在节点    Python
11 条回复
Ricardoo
2023 年 1 月 31 日
正常。
使用多卡后一般需要调小学习率,也有可能不需要调,比较玄学。
clemente0620
2023 年 1 月 31 日
按卡倍数 降低 学习率
leimao
2023 年 1 月 31 日
DDP 本质就是增加了 Batch Size 。Batch Size 变了,模型可能需要就 Training Recipe 进行微调。
hsfzxjy
2023 年 2 月 1 日
调学习率,以及注意 BN
yiyi1010
2023 年 2 月 1 日
对 DDP 增加了 batch size ,不是应该按照卡倍数 增加学习率吗?
yiyi1010
2023 年 2 月 1 日
@Ricardoo 这 那还能调吗
yiyi1010
2023 年 2 月 1 日
@hsfzxjy 请问 BN 是有什么影响吗
hsfzxjy
2023 年 2 月 1 日
@yiyi1010 BN 要换成 SyncBatchNorm ,不然统计量不同步
yiyi1010
2023 年 2 月 1 日
@hsfzxjy 有道理。谢谢你,我去试试
yiyi1010
2023 年 2 月 1 日
看一般是需要线性提升 leanring rate
yiyi1010
2023 年 3 月 12 日
@hsfzxjy 你说 layernorm ,而不是 BN ,也要替换成 Syn 的版本是吗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/912025

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX