GAN网络生成的图片太亮、不够清晰的问题解决【torchvision.utils.save_image的range】

本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> GAN网络生成的图片太亮、不够清晰的问题解决【torchvision.utils.save_image的range】

问题

最近在跑GAN网络,生成一些图片,但是生成的图片不尽如人意,质量不高,太亮,而且太模糊,但是能够保证的是轮廓和细节是很好的,说明改进是有作用的。 在这里插入图片描述生成的图片是上面这样的,问题在于太亮,而且不够清晰。

解决方法

1、考虑你的gan网络的输入是否正确 2、考虑你保存图片的时候,设置是否正确

而我的问题就在于保存图片的时候,设置的参数不正确导致的,这个问题困惑了我很久,现在解决了,记录一下。


save_image(denorm(fake_images), os.path.join(self.sample_dir,
                                                                 'epoch-{}-step-{}.png'.format(epoch, step + 1)),
                               nrow=6, padding=0, normalize=False, range=[-1,1], scale_each=False, pad_value=0)

先说一下 save_image函数。


def save_image(tensor, filename, nrow=8, padding=2,
               normalize=False, range=None, scale_each=False, pad_value=0):
    """Save a given Tensor into an image file.

    Args:
        tensor (Tensor or list): Image to be saved. If given a mini-batch tensor,
            saves the tensor as a grid of images by calling ``make_grid``.
        **kwargs: Other arguments are documented in ``make_grid``.
    """
    from PIL import Image
    grid = make_grid(tensor, nrow=nrow, padding=padding, pad_value=pad_value,
                     normalize=normalize, range=range, scale_each=scale_each)
    # Add 0.5 after unnormalizing to [0, 255] to round to nearest integer
    ndarr = grid.mul_(255).add_(0.5).clamp_(0, 255).permute(1, 2, 0).to('cpu', torch.uint8).numpy()
    im = Image.fromarray(ndarr)
    im.save(filename)

参数意义:

  • tensor:待保存的tensor数据。如果给以一个四维的mini-batch的tensor,将调用网格方法,然后再保存到本地。- filename:保存的名称- nrow:图片保存为几行- padding:图片之间的padding- normalize:是否标准化- range:min和max是数字,那么min,max用来规范化image- pad_value:填充像素值
    而我的问题就在于这里的参数设置,你可以看到我的设置是 range=[-1,1],这个参数的设置就会出现我的问题,导致图片太亮,不清晰。

因此,我就设置为默认值 None,就解决了。

原文地址:https://sihai.blog.csdn.net/article/details/114264909

本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> GAN网络生成的图片太亮、不够清晰的问题解决【torchvision.utils.save_image的range】


 上一篇
应届生如何准备校招,用我这一年的校招经历告诉你 应届生如何准备校招,用我这一年的校招经历告诉你
前期准备校招在我看来是一件时间特别长的战争,为什么这么说呢,因为从你开始准备校招的那一刻开始,到你正式拿到offer的,并且确定去哪一家公司时,时间差不多一年左右,这个时间其实比考研、公务员等都要长,你可能会问为什么需要这么长的时间,当然,
2021-04-04
下一篇 
写博客能月入10K? 写博客能月入10K?
对于写博客这件事情,我还是非常有经验的,我大概从大二开始写博客,一直持续到现在已经有6年的时间了,应该说是积累了一些经验,今天跟大家聊聊。 在大学的时候,写博客的初心其实就是记录一些学习的知识,那个时候,因为很多技术都不是很了解,所以每天需
2021-04-04