【发布时间】:2019-01-25 10:39:48
【问题描述】:
我正在研究图像分类器数据集。我的数据集中有 31 个类,每个类都有一个文件夹。对于训练,我以以下方式加载数据:
from torchvision import datasets, transforms
import torch
def load_training(root_path, dir, batch_size, kwargs):
transform = transforms.Compose(
[transforms.Resize([256, 256]),
transforms.RandomCrop(224),
transforms.RandomHorizontalFlip(),
transforms.ToTensor()])
data = datasets.ImageFolder(root=root_path + dir, transform=transform)
train_loader = torch.utils.data.DataLoader(data, batch_size=batch_size, shuffle=False, drop_last=True, **kwargs)
return train_loader
现在批次大小为 32,每个批次的暗淡为:[32,3,224,224]。我知道 Pytorch 使用 PIL 来加载图像。但是,当我尝试使用 PIL 使用以下代码 sn-p 从名为 images 的大小为 32 的列表中加载图像时:
for i in images:
im = Image.open(root_dir + dir + i)
im = im.convert('RGB')
im.load()
im = im.resize((224, 224))
im = np.asarray( im, dtype="int32" )
print(im.shape)
temp_im_2 = torch.from_numpy(np.array(temp_im)).float()
上面写着im.shape 是(32,224,224,3)。我究竟做错了什么?我应该怎么做才能让这两种情况下的批次具有相同的形状,比如[32,3,224,224]?
【问题讨论】:
标签: python-3.x image-processing machine-learning python-imaging-library pytorch