我有一个用于24个类别的训练图像数据集,每个类别有2800张图像,这些类别在名为“training”的目录中被分开存放,每个类别在其各自的子目录中。
我使用以下代码通过keras加载数据:
datagen = ImageDataGenerator(rescale= 1./255 ,fill_mode='nearest')train_data = datagen.flow_from_directory('training-images',class_mode='categorical', target_size=(32,32))
它加载了图像,但图像获得了错误的标签
目录结构如下:
training-images/ 0/ image.jpg . . 1/ image.jpg . . . . 23/ image.jpg . .
回答:
flow_from_directory
会按字母顺序而不是数字顺序对类别进行排序。这意味着您的类别将按以下顺序排列:0, 1, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2, 20, 21, 22, 23, 24, 3, 4, 5, 6, 7, 8, 9。如果我是您,我会给文件夹赋予描述性的名称(例如,对于CIFAR10,它们将是“airplane”、“bird”等),然后使用 .class_indices
将生成的ID映射到类别名称上。