2016-07-23 4 views
9

Ich versuche, Bilder in 10 Klassen zu klassifizieren. Um Wahrscheinlichkeiten für Bilder zu erhalten, verwende ich die Funktion model.predict_generator() in keras. Dies gibt nur Vorhersagewerte zurück und nicht die entsprechende Proben-ID (in diesem Fall Bilddateiname).In welcher Reihenfolge übernimmt 'flow_from_directory' in Keras die Proben?

test_datagen = ImageDataGenerator(rescale=1./255) 

validation_generator = test_datagen.flow_from_directory(
     '/path/', 
     target_size=(256, 256), 
     batch_size=32,` 
     class_mode='categorical') 

predictions = model.predict_generator(validation_generator, val_samples=10000) 

In welcher Reihenfolge liest das '.flow_from_directory' die Beispiele?

(OR)

Wie finde ich die entsprechenden Bildnamen/ID der Vorhersagen?

Klicken Sie auf here für den Code.

Antwort

2

Wenn Sie shuffle=False gesetzt sieht es aus wie Bilder in zurückgegeben werden, was auch immer, um os.listdir gibt sie in.

ich das gerade getestet von meinem Generator mit ein paar Beispielbilder in eine Datei zu schreiben, mit shuffle=False

test_datagen = ImageDataGenerator(samplewise_center=False) 

test_generator = test_datagen.flow_from_directory(
     training_config['test_data_dir'], 
     target_size=(256, 256), 
     batch_size=5, 
     class_mode=None, 
     shuffle=False, 
     save_to_dir=os.path.join('samples')) 

Sie können auch den Generator Dateinamen drucken .., die (ich den Code sah) führt nur os.listdir

print test_generator.filenames

Also, Ihr predict_generator Ergebnis bei Index 0 für das Bild bei os.listdir Index sein sollte 0

+1

Wie es funktioniert, wenn 'predict_generator' eine' val_samples' hat, die mehr als die Anzahl der Dateien im Verzeichnis? Wickelt es sich? –

Verwandte Themen