请问想看重构的图像应该怎么写程序呢,我将输入的图像转换成tensor了直接调进net里输出,但是画不出图像,请问可以看看您写的看重构效果图片的程序吗,谢谢
Activity
WenxueCui commentedon Apr 7, 2021
很高兴对我的工作感兴趣。想要保存重建图片,你需要把tensor 转为 PILImage, 可以用力torchvision利用的工具。
ZiJUEWang commentedon Apr 7, 2021
print(image.size()) # (C,H, W), 通道顺序(R,G,B)
unloader = transforms.ToPILImage()
def tensor_to_PIL(tensor):
image = tensor.cpu().clone()
image = image.squeeze(0)
image = unloader(image)
return image
model = CSNet(32, 0.1)
res = model(image)
net = CSNet()
out = net(image)
print(out.size())
out = out.squeeze(0)
image = tensor_to_PIL(out)
img = ToPILImage()(out)
img.show
我在前面将读入的图像变换为【1,1,512,512】的张量,经过网络的输出仍然是这个尺寸,但是转换成PIL一直不显示图像,只有两个尺寸的输出
<built-in method size of Tensor object at 0x00000276E748ED00>
torch.Size([1, 1, 512, 512])
torch.Size([1, 1, 512, 512])
所以想着您有代码我可以参考一下吗,非常感谢,因为想了好几种办法还是没画出来,谢谢
WenxueCui commentedon Apr 9, 2021
就是用ToPILImage(), 你可以转为PILImage之后用save函数保存图片,然后再查看。我没有用过show。
ZiJUEWang commentedon Apr 9, 2021
很高兴收到您的回复,我刚刚尝试了save,但是保存的图片是一片空白,请问有什么解决办法吗,不知道是哪里出了问题,学习
ZiJUEWang commentedon Apr 9, 2021
WenxueCui commentedon Apr 9, 2021
我不确定是什么原因,你可以查看一下值的范围,是不是图片像素越界了。
img = ToPILImage()(out)
img.save('sample_result.png')
ZiJUEWang commentedon Apr 9, 2021
我用的是测试的那几张图像,512x512的,想不明白,请问可以传一份保存图像的代码吗,非常感谢