问题描述
保存到目录后,我找不到如何识别类。它将使用随机数保存图像名称。
例如“ _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中添加一些密钥。然后它将使用它来拾取图像名称。
,在这里做了一些实验之后,下面的代码将提供原始文件名和相关标签。标签是与类相对应的整数类索引。即filenames [0]具有标签label [0]等。class_indices属性是一个字典,其中包含从类名到类索引的映射。例如,如果您有2类猫和狗,则字典将为{'cats':0,'dogs':1}。现在事实证明,如果使用shuffle = False运行image_data_generator,生成器将使用随机文件名保存扩展文件,但是第二个下划线之前的前几位似乎是文件处理的顺序。因此,_0_random编号是第一个处理的文件。因此,在下面的代码中,其关联的标签将是labels [0]等。因此,您可以确定保存的图像属于该类的类别。现在,您可能需要使用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