前处理归一化,mobilenet的归一化参数如下,这些奇奇怪怪的数字是怎么来的呢?
这是imagenet数据集的标准的均值和方差,Imagenet数据集的均值和方差为:mean=(0.485, 0.456, 0.406),std=(0.229, 0.224, 0.225),因为这是在百万张图像上计算而得的,所以我们通常见到在训练过程中使用它们做标准化,这是0-1图片的均值方差,对于0-255的输入,你用mean=(0.485, 0.456, 0.406)*255 就可以得到推荐的RGB的mean。
标准差是方差的算数平方根,归一化除以的是标准差,而非方差。
(0.485, 0.456, 0.406)*255 = (123.675, 116.28,103.53), 和如上设置一致。这是均值,每个通道的标准差为:
std=(0.229, 0.224, 0.225)*255=(58.395,57.12,57.375).
芯原是乘以scale,且不是每个通道一个均值,所以,scale = 1/std=(0.0171247538316637, 0.0175070028011204,0.0174291938997821),所以上面的设置为0.017,也就是说:
这样对于方差范围之内的值,归一化后变为[-1,1]的范围内。可能会有超出[-1,1]范围的值,但是由于方差覆盖了大部分的数据,所以大部分数据归一化后变为[-1,1]区间内的值。