fastnlp / fastNLP

fastNLP: A Modularized and Extensible NLP Framework. Currently still in incubation.
https://gitee.com/fastnlp/fastNLP
Apache License 2.0
3.05k stars 451 forks source link

torch ddp多卡的情况下保证 Batch Norm 使用所有卡上的数据共同计算均值和方差 #434

Closed 00INDEX closed 1 year ago

00INDEX commented 1 year ago

Description:torch ddp多卡的情况下保证 Batch Norm 使用所有卡上的数据共同计算均值和方差。

Main reason: 在使用 torch dpp 多卡的时候,BatchNorm 层默认值使用自己卡上的数据计算均值和方差然后进行归一化,导致不同卡上计算得到的均值和方差不同,可能会使训练变得不稳定。

Checklist 检查下面各项是否完成

Please feel free to remove inapplicable items for your PR.

Changes: 逐项描述修改的内容