在多个 类 上训练时如何在 Keras 中获取标签 ID?

How to get labels ids in Keras when training on multiple classes?

我正在使用 flow_from_directory 从具有以下结构的文件夹中获取训练集:

train
  class1
  class2
  class3
  ...

生成器调用如下:

train_generator = train_datagen.flow_from_directory( 
        train_data_dir,                              
        target_size=(img_height, img_width),         
        batch_size=32,                               
        class_mode='categorical')  

我没有设置参数 classes,但我希望得到按字母顺序排列的标签。

classes: optional list of class subdirectories (e.g. ['dogs', 'cats']). Default: None. If not provided, the list of classes will be automatically inferred (and the order of the classes, which will map to the label indices, will be alphanumeric).

但是,当我 class 验证训练图像(用于检查返回哪些标签)时,我没有得到任何特定的排序。训练进展顺利(准确率约为 85%),并且当 class 化来自相同 class 的图像时与输出标签具有一致性。

如何推断 flow_from_directory 生成的标签编号并将它们映射到 classes?

看变量ImageDataGenerator.class_indices

可以看到哪个class对应哪个整数

这是一个如何使用它的例子

    def build(source=None):
        datagen = ImageDataGenerator(rescale=1. / 255)
        data_generator = datagen.flow_from_directory(
        source,  # this is the target directory
        target_size=(150, 150),  # all images will be resized to 150x150
        batch_size=11,
        class_mode='sparse')
        class_dictionary = data_generator.class_indices
    return data_generator, class_dictionary