首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用数据加载器加载时,PyTorch会平铺图像

使用数据加载器加载时,PyTorch会平铺图像
EN

Stack Overflow用户
提问于 2020-11-06 05:12:33
回答 1查看 244关注 0票数 0

我正在尝试使用PyTorch数据加载器加载图像数据集,但生成的转换是平铺的,并且没有像我预期的那样将原始图像裁剪到中心。

代码语言:javascript
运行
复制
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))

生成的图像是平铺的,而不是中心裁剪的。

所提供的转换中是否存在错误?(下图显示链接:) 1:https://i.stack.imgur.com/HtrIa.png

EN

回答 1

Stack Overflow用户

发布于 2020-11-06 05:41:08

Pytorch以通道优先格式存储张量,因此3通道图像是形状(3,H,W)的张量。Matplotlib期望数据是通道最后的格式,即(H,W,3)。调整形状不会重新排列尺寸,因此您需要Tensor.permute

代码语言:javascript
运行
复制
plt.imshow(images[6].permute(1, 2, 0))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64705364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档