DataParallel、DataDistributedParallel、SyncBN、BN

DataParallel简称DP,它不支持SyncBN(即同步BN),同步BN只在DataDistributedParallel(DDP)中才支持。如果单卡batch size太小,使用SyncBN可以提高性能;如果batch size较大的时候不需要使用SyncBN,因为同步时GPU之间的通信会导致训练速度变慢。

DP中的BN与DDP支持的SyncBN
当使用 torch.nn.DataParallel 将代码运行在多张 GPU 卡上时,PyTorch 的 BN 层是非同步的,默认操作是各卡上数据独立地计算均值和标准差,并在单卡上维护自己的参数,只在每一个GPU上对样本进行归一化,相当于减少了batch size的大小,训练的时候实际的 BN 层的 batch-size 为B a t c h S i z e /G P U 数 量 ;

SyncBN的意思是每张卡上使用相同的统计量:均值和方差。同步 BN 使用所有卡上的数据(全局样本数据)一起计算 BN 层的均值和标准差,缓解了当批量大小(batch size)比较小时对均值和标准差估计不准的情况

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值