一图搞懂正则化(Normalization)

经常看到

transform.ToTensor(),
transform.Normalize((0.5,0.5,0.5),(0.5,0.5,0.5))

那transform.Normalize()是怎么工作的呢?以上面代码为例,ToTensor()能够把灰度范围从0-255变换到0-1之间,而后面的transform.Normalize()则把0-1变换到(-1,1).具体地说,对每个通道而言,Normalize执行以下操作:

image=(image-mean)/std

 其中mean和std分别通过mean = (0.5,0.5,0.5)和std = (0.5,0.5,0.5)进行指定。原来的0-1最小值0则变成(0-0.5)/0.5=-1,而最大值1则变成(1-0.5)/0.5=1.

一图搞懂正则化(Normalization)_第1张图片

然而这里是 Normalize,也就是Batch Norm这种情况, (0.5,0.5,0.5) 分别对应R,G,B通道上的 mean。 std也一样。

你可能感兴趣的:(深度学习,Python,pytorch)