如何解决当PyTorch加载了Dataloader时正在平铺图像
我正在尝试使用PyTorch数据加载器加载图像数据集,但是所产生的转换是平铺的,并且没有像我期望的那样将原始图像裁剪到中心。
transform = transforms.Compose([transforms.Resize(224),transforms.CenterCrop(224),transforms.ToTensor()])
dataset = datasets.ImageFolder('ml-models/downloads/',transform=transform)
dataloader = torch.utils.data.DataLoader(dataset,batch_size=32,shuffle=True)
images,labels = next(iter(dataloader))
import matplotlib.pyplot as plt
plt.imshow(images[6].reshape(224,224,3))
结果图像被平铺,而不是中心裁剪。[![如此处Jupyter快照所示] [1]] [1]
所提供的转换中有问题吗? (下图显示在链接上:) [1]:https://i.stack.imgur.com/HtrIa.png
解决方法
Pytorch以通道优先的格式存储张量,因此3通道图像是形状为(3,H,W)的张量。 Matplotlib希望数据采用通道末尾格式,即(H,W,3)。重塑不会重新排列尺寸,因为您需要Tensor.permute。
plt.imshow(images[6].permute(1,2,0))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。