如何将pytorch归一化的图像数据进行反归一化
程序员文章站
2022-07-14 18:53:40
...
我们将过行归一化的图片数据显示出来后会发现不是正常的图片。因此需要进行反归一化操作。
一、均值与方差的值相同时的反归一化
这个比较简单,比如说Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))
,则只需要将tensor进行如下操作即可。
result = result*0.5 + 0.5
二、均值与方差的值不相同时的反归一化
比如ImageNet的数据Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])]
。进行下如操作
def inverse_normalize(tensor,mean,std):
for t, m, s in zip(tensor,mean,std):
t.mul_(s).add_(m)
return tensor
然后调用
result = inverse_normalize(result,mean=(0.485, 0.456, 0.406),std=(0.229, 0.224, 0.225))
这样显示出来的图片能看,只是颜色过于鲜艳。