Wenn man flow_from_directory verwendet, besteht das Problem darin, wie die Wahrscheinlichkeitsausgaben interpretiert werden. Wie in, wie die Wahrscheinlichkeitsausgaben und die Klassenbezeichnungen so abgebildet werden, wie flow_from_directory One-Hot-Vektoren erstellt, ist bisher nicht bekannt.
Wir können ein Wörterbuch erhalten, das die Klassenbezeichnungen dem Index des Vorhersagevektors zuordnet, den wir bei unserer Verwendung als Ausgabe erhalten
generator= train_datagen.flow_from_directory("train", batch_size=batch_size)
label_map = (generator.class_indices)
Die Variable label_map ist ein Wörterbuch wie dieses
{'class_14': 5, 'class_10': 1, 'class_11': 2, 'class_12': 3, 'class_13': 4, 'class_2': 6, 'class_3': 7, 'class_1': 0, 'class_6': 10, 'class_7': 11, 'class_4': 8, 'class_5': 9, 'class_8': 12, 'class_9': 13}
Daraus kann dann die Beziehung zwischen den Wahrscheinlichkeitsbewertungen und den Klassennamen abgeleitet werden.
Grundsätzlich können Sie dieses Wörterbuch mit diesem Code erstellen.
from glob import glob
class_names = glob("*")
class_names = sorted(class_names)
name_id_map = dict(zip(class_names, range(len(class_names))))
Die Variable name_id_map im obigen Code enthält auch dasselbe Wörterbuch wie das aus der class_indices-Funktion von flow_from_directory erhaltene.
Hoffe das hilft!