PyTorch DistributedDataParallel 多卡训练结果变差

2023-01-31 19:09:39 +08:00
 yiyi1010

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

1693 次点击
所在节点    Python
11 条回复
Ricardoo
2023-01-31 19:21:22 +08:00
正常。
使用多卡后一般需要调小学习率,也有可能不需要调,比较玄学。
clemente0620
2023-01-31 19:34:25 +08:00
按卡倍数 降低 学习率
leimao
2023-01-31 23:46:40 +08:00
DDP 本质就是增加了 Batch Size 。Batch Size 变了,模型可能需要就 Training Recipe 进行微调。
hsfzxjy
2023-02-01 00:28:11 +08:00
调学习率,以及注意 BN
yiyi1010
2023-02-01 09:03:13 +08:00
对 DDP 增加了 batch size ,不是应该按照卡倍数 增加学习率吗?
yiyi1010
2023-02-01 09:03:44 +08:00
@Ricardoo 这 那还能调吗
yiyi1010
2023-02-01 09:04:23 +08:00
@hsfzxjy 请问 BN 是有什么影响吗
hsfzxjy
2023-02-01 09:33:29 +08:00
@yiyi1010 BN 要换成 SyncBatchNorm ,不然统计量不同步
yiyi1010
2023-02-01 10:08:32 +08:00
@hsfzxjy 有道理。谢谢你,我去试试
yiyi1010
2023-02-01 10:09:35 +08:00
看一般是需要线性提升 leanring rate
yiyi1010
2023-03-12 22:21:38 +08:00
@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