欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

如何将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))

这样显示出来的图片能看,只是颜色过于鲜艳。