可视化工具使用matplotlib,针对经过torchvision的tranformer变换后要可视化的一些问题
原图:
问题1
经过处理后,如果直接去做可视化,如使用这样的语句:
img = img.detach().cpu().numpy().reshape(224,224,3)
出现图像如下
解决方法,使用ToPILImage
from torchvision.transforms import ToPILImage
img = ToPILImage()(img.cpu()[0])
plt.imshow(img)
plt.show()
问题2
出现的图像和原来差很多
这是由于在变换中加入了归一化,如
transforms.Compose([
transforms.Resize((224,224),Image.ANTIALIAS),
transforms.ToTensor(),
transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
])
可视化时将Normalize去掉就可以。
另外如果时二值图,需要注意乘以或除以255.0