问题描述
在做一个paddlepaddle项目的时候,需要使用神经网络对他进行分类,数据集的结构如下图,这时候我们可以使用常用dataset方法对数据集进行构建。
这时候我们就会发现一个问题,就是这个矿建不是构建标签,也就是说不能将该文件内的图片分配类别,这和torch中的dataset构建是不一样的。那么这时候,就需要我们手动的去构建这个,这时候,我们自定义类,代码如下。
class CustomImageFolder(DatasetFolder):
def __init__(self, root, transform=None, ):
super(CustomImageFolder, self).__init__(root, transform=transform)
def __getitem__(self, idx):
img, label = super(CustomImageFolder, self).__getitem__(idx)
# 添加图像增强
img = Resize((224, 224))(img)
img = RandomHorizontalFlip()(img)
img = ColorJitter(brightness=0.2, contrast=0.2, saturation=0.2, hue=0.1)(img)
img = ToTensor()(img)
img = paddle.transpose(img, perm=[2, 0, 1])
return img, label
# 加载数据集并应用自定义转换
dataset = CustomImageFolder(root=data_dir, transform=None)
这时候返回的数据集就会自带类别标签了,可以将dataset[0]打印出来看看结果。