问题描述
在做一个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]打印出来看看结果。