2016-04-11 12 views
2

Die folgende Codezeile gibt mir den obigen Fehler in Keras. Modell ist ein Graph-Modell in Keras.TypeError: 'numpy.float64' Objekt ist nicht iterierbar Keras

score, acc = model.evaluate({'input1': X_test1,'input2': X_test2,'output':Y_test},batch_size=450) 

aber wenn ich es zu den folgenden ändern, läuft es gut.

predictions = model.predict({'input1': X_test1,'input2': X_test2},batch_size=450)['output'] 

Der Y_test hier ist ein von. Ein einheiß codierter Vektor.

Probe Y_test: [[1, 0, 0], [1, 0, 0], [0, 0, 1]...]

Antwort

3

Wie Sie hier sehen :

https://github.com/fchollet/keras/blob/master/keras/engine/training.py

Die Prüfung Methode nur Testverlust zurückgibt (oder Verluste). Die Zuweisung eines Ergebnisses dieser Methode zu einem Paar führt zu einem Fehler.

+1

Vielen Dank, dass Sie darauf hingewiesen haben. Es schien für das Sequential-Modell gut zu funktionieren, aber jetzt vermute ich, dass es zwei Metriken zurückgibt. –

+0

Tatsächlich gibt es den Testverlust und alle angeforderten Metriken zurück. Die Zuordnung des Ergebnisses zu einem Paar "score, acc" hätte funktioniert, wenn die Genauigkeitsmetrik aus der Modellanpassung angefordert wurde – shadi

+0

Dies ist eine ziemlich alte Antwort. 'Keras' hat sich seit dieser Zeit sehr verändert. –

0

Mit Keras 1.0 konnte ich die Punktzahl ausdrucken, aber ich würde diesen Fehler erhalten, wenn ich versuchte, die Punktzahl und Genauigkeit zu erhalten.

Ich habe meine Keras auf 0.3.3 heruntergestuft und den exakt gleichen Code ausgeführt. Ich konnte Punkte und Genauigkeit erzielen.

Verwandte Themen