问题描述
在做一个paddlepaddle项目的时候,需要使用神经网络对他进行分类,数据集的结构如下图,这时候我们可以使用常用dataset方法对数据集进行构建。

这时候我们就会发现一个问题,就是这个矿建不是构建标签,也就是说不能将该文件内的图片分配类别,这和torch中的dataset构建是不一样的。那么这时候,就需要我们手动的去构建这个,这时候,我们自定义类,代码如下。
            
            
              python
              
              
            
          
          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]打印出来看看结果。