Pour de KERAS ImageDataGenerator
flow_*
méthodes, il nécessite une version des indices de chaîne de caractères classe pour catégoriques et rares class_mode
. J'ai des étiquettes de classe qui ressemblent ['0','1',...,'10','11',...]
et une conséquence regrettable est que les indices KERAS ces dans l' ordre alphabétique chaîne-:
Par exemple:
datagen = ImageDataGenerator(
rotation_range=0,
width_shift_range=0,
height_shift_range=0,
rescale=None,
shear_range=0,
zoom_range=0,
horizontal_flip=False,
preprocessing_function=preprocessor,
fill_mode='nearest')
test_generator = datagen.flow_from_dataframe(
dataframe=dfTest,
directory=None,
x_col=filePath,
y_col=ycat,
target_size=SIZE,
batch_size=BATCH_SIZE,
class_mode='sparse',
shuffle=False)
print(test_generator.class_indices)
donne:
{'0': 0,
'1': 1,
'10': 2,
'11': 3,
...,
'2': 12,
'20': 13,
'21': 14,
'22': 15,
'3': 16,
'4': 17,
'5': 18,
'6': 19,
'7': 20,
'8': 21,
'9': 22}
Idéalement, je voudrais voir:
{'0': 0,
'1': 1,
'2': 2,
...,
}
Je pensais à changer manuellement test_generator.class_indices
mais je ne suis pas sûr que ce soit sûr de le faire comme après l' initialisation, le générateur a précalculée les étiquettes de classe de l'ensemble de données.
Y at - il une bonne solution à cela sans réécrire la flow_*
méthode?