BN,IN,LN,GN,SWN的区别与联系

查过很多次,但是一旦一段时间过去后,就会忘记,还是自己做个总结比较好。

首先Normalization做的是规范化,假设原数据是多维向量,符合某种均值与方差的正态分布,那么规范化就是在多维向量的某些维度上,将向量正态分布的均值与方差变为0与1。不同的normalization的区别在于均值与方差计算方式的不同,将均值u与方差d计算出来后,对多维向量的每个元素进行如下操作:(x-u)/d。

均值与方差计算方式举例如下。

x_test = np.array([[[1,2,-1,1],[3,4,-2,2]],

                      [[1,2,-1,1],[3,4,-2,2]]])

x_test = torch.from_numpy(x_test).float()

上述tensor的size是2x2x4(BxCxN),对应一维的normalization。

上图的意思解释如下:

BN: NHWC ~~~> 111C的意思是,每个NHW为一个计算单位,计算出每个NHW的均值与方差,共有C个,随后每个元素用对应的均值与方差进行规范化。

IN:NHWC ~~~> N11C,计算出NC个均值与方差,每个HW为一个计算单位。

LN: NHWC ~~~> N111,计算出N个均置于方差,每个HWC为一个计算单位。

至于适用场景,复制粘贴一个其他人的.

batchNorm是在batch上,对小batchsize效果不好;

layerNorm在通道方向上,主要对RNN作用明显;

instanceNorm在图像像素上,用在风格化迁移;

GroupNorm将channel分组,然后再做归一化, 在batchsize<16的时候, 可以使用这种归一化;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值