Keras ImageDataGenerator doorstroomklasse indices voor schaars en categorische klassen

stemmen
0

Voor keras's ImageDataGenerator flow_*methoden, het vereist een string gemaakt versie van klasse indices voor categorische en schaars class_mode. Ik heb klasse labels die eruit ziet als ['0','1',...,'10','11',...]en een ongelukkige gevolg is dat Keras indexeert deze in string-alfabetische volgorde:

Bijvoorbeeld:

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)

geeft:

{'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}

Idealiter zou ik graag zien:

{'0': 0,
 '1': 1,
 '2': 2,

 ...,
 }

Ik dacht over het handmatig veranderen test_generator.class_indices, maar ik ben niet zeker dat het veilig is om te doen wat na de initialisatie, heeft de generator vooraf berekende de klasse labels van de dataset.

Is er een mooie oplossing voor dit zonder het herschrijven van de flow_*methode?

De vraag is gesteld op 13/02/2020 om 22:02
bron van user
In andere talen...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more