syncbn讲解(同步Batch Normalization)

目前网络的训练多为多卡训练,大型网络结构以及复杂任务会使得每张卡负责的batch-size小于等于1,若不进行同步BN,moving mean、moving variance参数会产生较大影响,造成BN层失效。

为简化inference过程,以及商业代码保密,通常进行BN融合操作。即把BN参数融合至conv层。

BN 的性能和 batch size 有很大的关系。batch size 越大,BN 的统计量也会越准。然而像检测这样的任务,占用显存较高,一张显卡往往只能拿较少的图片(比如 2 张)来训练,这就导致 BN 的表现变差。一个解决方式是 SyncBN:所有卡共享同一个 BN,得到全局的统计量。

你可能感兴趣的:(计算机视觉,深度学习,pytorch,神经网络,目标检测)