[英]PyTorch is tiling images when loaded with 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))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.