Ich verwende das Keras Sequential-Modell, um mehrere Klassenklassifizierer zu trainieren.Anfügen von Klassenetiketten an ein Keras-Modell
Bei der Auswertung gibt Keras einen Vektor der Vertraulichkeiten aus und ich kann die korrekte Klassen-ID aus der mit Argmax ableiten. Ich kann dann eine Nachschlagetabelle verwenden, um die tatsächliche Klassenbezeichnung (z. B. eine Zeichenfolge) zu erhalten.
Bis jetzt ist die Lösung, das trainierte Modell zu laden und dann eine Lookup-Tabelle separat zu laden. Da ich eine ganze Reihe von Klassifikatoren habe, würde ich es vorziehen, beide Strukturen in einer Datei zu behalten.
Also was ich suche ist eine Möglichkeit, den tatsächlichen Label-Lookup-Vektor in das Keras-Modell zu integrieren. Das würde mir erlauben, eine einzige Klassifizierungsdatei zu haben, die in der Lage ist, einige Eingabedaten zu nehmen und die korrekte Klassenbezeichnung für diese Daten zurückzugeben.
Eine Möglichkeit, dies zu lösen, wäre, sowohl das Modell als auch die Nachschlagetabelle in einem Tupel zu speichern und dieses Tupel in eine Beize zu schreiben, aber das scheint nicht sehr elegant zu sein.
Akzeptieren meine eigene Antwort für einen Mangel an Alternativen. Wenn jemand eine bessere Lösung findet, nehme ich seine an. – Cerno
Das gleiche Problem versuche ich zu lösen. aber deine lösung funktioniert nicht für mich: '' 'save_model_ext (mod1, filepath = 'test_model.h5', meta_data = {0: 'c1', 1: 'c2'})' ' ergibt ein Fehler: '' ' TypeError: Objekt dtype dtype ('O') hat kein natives HDF5-Äquivalent ' ' Welchen Typ erwartet Ihre Funktion' meta_data'? – slymore
Hallo. Sie müssen Daten verwenden, die in HDF5 konvertiert werden können. dtype = "O" bedeutet, dass Ihre Daten ein Python-Objekt enthalten, das offensichtlich nicht gültig ist. Wenn ich mich erinnere, habe ich Python-Wörterbücher ohne Probleme benutzt. Ist das wirklich der Code, den du ausprobiert hast oder ist die Wahrheit komplexer? – Cerno