zoukankan      html  css  js  c++  java
  • Pytorch:反transform操作,实现从tensor转成PIL image

    该代码为transforms的反函数,实现从tensor转成PIL image,用于在框架的enumerate迭代中的中间图片可视化。

    代码思想如下,可以根据具体情况和需要进行修改

    def transform_invert(img_, transform_train):
        """
        将data 进行反transfrom操作
        :param img_: tensor
        :param transform_train: torchvision.transforms
        :return: PIL image
        """
        if 'Normalize' in str(transform_train):
            norm_transform = list(filter(lambda x: isinstance(x, transforms.Normalize), transform_train.transforms))
            mean = torch.tensor(norm_transform[0].mean, dtype=img_.dtype, device=img_.device)
            std = torch.tensor(norm_transform[0].std, dtype=img_.dtype, device=img_.device)
            img_.mul_(std[:, None, None]).add_(mean[:, None, None])
    
        img_ = img_.transpose(0, 2).transpose(0, 1)  # C*H*W --> H*W*C
        img_ = np.array(img_) * 255
    
        if img_.shape[2] == 3:
            img_ = Image.fromarray(img_.astype('uint8')).convert('RGB')
        elif img_.shape[2] == 1:
            img_ = Image.fromarray(img_.astype('uint8').squeeze())
        else:
            raise Exception("Invalid img shape, expected 1 or 3 in axis 2, but got {}!".format(img_.shape[2]) )
    
        return img_
  • 相关阅读:
    redis 资料
    php 安装redis php扩展
    Unity生命周期
    疫情下的大学生人格发展研究
    对联一句——百花深处
    Unity实现byte[]合成图像
    Unity实现精灵资源动态加载
    数据结构与算法初步
    Unity中激活子物体
    C#实现自定义列表
  • 原文地址:https://www.cnblogs.com/sakuraie/p/13375894.html
Copyright © 2011-2022 走看看