【发布时间】:2021-11-12 14:20:25
【问题描述】:
尝试使用“dataloader”分割我的数据集时遇到问题。
我使用了显示像素为 (2294 * 1914) 的灰色图片。首先,使用“变换”,
然后得到 tensor.size() = (1, 2294, 1914)。
但是在使用“dataloader”之后,返回的 .size( ) 得到 (8, 1, 2294, 1914, 3),
应该是 (8, 1, 2294, 1914)。
最后一个维度“3”将每个像素复制了三次,我不知道问题出在哪里。
任何帮助将不胜感激!
import torch
import numpy as np
from torchvision import transforms
import torchvision
import torch.utils.data
from PIL import Image
training_transforms = transforms.Compose([
transforms.Lambda(lambda image: torch.from_numpy(np.array(image) \
.astype(np.float32)).unsqueeze(0)),
transforms.Lambda(lambda image: image / 65535)
])
training_dataset_path = r"D:\user\Desktop\bcResearch\root"
train_dataset = torchvision.datasets.ImageFolder(root = \
training_dataset_path, transform = training_transforms)
train_loader = torch.utils.data.DataLoader \
(dataset = train_dataset, batch_size = 8, shuffle = False)
img = Image.open \
(r"D:\user\Desktop\bcResearch\root\2\Subroot1_Sub1_subroot3_IM1.tiff")
img = training_transforms(img)
print(img.size())
for i, j in train_loader:
print(i.size())
print(i)
break
#end
Result is in the link here. (I have insufficient permissions to paste the picture directly. )
【问题讨论】:
标签: python-3.x pytorch tensor pytorch-dataloader