论文地址:
上图中H,W为feature map的高宽,C为feature map的channel数,N为batch size(每个batch的样本数)
Batch Normalization就是以batch和H,W为更新的集合,每个channel之间是独立的,也就是每个batch后对每个channel独立的进行normalization,对小batchsize效果不好
Layer Normalization就是以H,W和C作为更新的集合,每个训练样本之间是独立的,也就是每个样本后对所有channel作为一个整体进行normalization,主要对RNN作用明显
Instance Normalization就是以H,W作为更新的集合,每个训练样本、channel之间是独立的,也就是每个样本后对每个channel独立的进行normalization,用在风格化迁移
Group Normalization就是以H,W和channel的分组作为更新的集合,每个训练样本之间是独立的,也就是每个样本后对同一组的channel作为一个整体进行normalization
其中Group Normalization中的G为分组的个数,也就是说Layer Normalization是Group Normalization时G=1时候的特例,Instance Normalization是是Group Normalization时G=C时候的特例
SwitchableNorm 是将BN、LN、IN结合,赋予权重,让网络自己去学习归一化层应该使用什么方法
GN在tf上的实现
参考:https://blog.csdn.net/liuxiao214/article/details/81037416