ImageDataGenerator keras - save_to_dir

ImageDataGenerator keras - save_to_dir

保存到目录后,我找不到如何识别 类。它用随机数保存图像名称。

例如。 “_1_1234.png”

ImageDataGenerator.flow(
    x,
    y,
    batch_size=32,
    shuffle=True,
    sample_weight=None,
    seed=None,
    save_to_dir= "path_to_dir",
    save_prefix="",
    save_format="png",
    subset=None,
)

您可以尝试在 save_prefix 中添加一些密钥。然后它会用它来获取图像名称。

经过一些试验后,您可以如何做 it.The 下面的代码将提供原始文件名,关联的 labels.Labels 是与 [=22] 对应的整数 class 索引=]是的。即文件名[0] 具有标签labels[0] 等。class_indices 属性是一个字典,其中包含从class 名称到class 索引的映射。例如,如果您有 2 classes cats 和 dogs,则字典将为 {'cats': 0, 'dogs': 1}。现在事实证明,如果你 运行 image_data_generator 和 shuffle=False 生成器会使用随机文件名保存扩充文件,但是第二个下划线之前的第一个数字似乎是文件处理的顺序.所以 _0_random 号是第一个处理的文件。所以它在下面代码中的关联标签将是 labels[0] etc.So 你可以确定哪个 class 保存的图像属于那种方式。现在您可能想要使用 shuffle=True 进行训练。现在生成器打乱了图像,但是第二个下划线之前的数字仍然代表原始图像顺序。因此,如果它被标记为 _10_random 数字,则此图像标签为 label[10].

data_gen=ImageDataGenerator.flow(
    x,
    y,
    batch_size=32,
    shuffle=True,
    sample_weight=None,
    seed=None,
    save_to_dir= "path_to_dir",
    save_prefix="",
    save_format="png",
    subset=None,
file_names= data_gen.filenames
labels= data_gen.labels
label_dict=data_gen.class_indices