从手电筒以PIL格式显示图像

时间:2020-04-22 15:15:11

标签: pytorch

我对Pytorch很陌生。我想知道如何转换大小torch.Size([1, 3, 224, 224])的张量以在Jupyter笔记本上以图像格式显示。 PIL格式或CV2格式应该可以。

我尝试使用transforms.ToPILImage(x),但结果却是这样的格式:ToPILImage(mode=ToPILImage(mode=tensor([[[[1.3034e-16, 1.3034e-16, 1.3034e-16, ..., 1.4475e-16,.

也许我做错了:no_mouth:

1 个答案:

答案 0 :(得分:0)

由于图像已被规范化,因此需要对其进行规范化。您必须执行归一化期间执行的相反操作。一种方法是

class UnNormalize(object):
    def __init__(self, mean, std):
        self.mean = mean
        self.std = std

    def __call__(self, tensor):
        """
        Args:
            tensor (Tensor): Tensor image of size (C, H, W) to be normalized.
        Returns:
            Tensor: Normalized image.
        """
        for t, m, s in zip(tensor, self.mean, self.std):
            t.mul_(s).add_(m)
            # The normalize code -> t.sub_(m).div_(s)
        return tensor

要使用此功能,您需要均值和标准差(用于对图像进行标准化)。然后,

unorm = UnNormalize(mean = [0.35675976, 0.37380189, 0.3764753], std = [0.32064945, 0.32098866, 0.32325324])
image = unorm(normalized_image)