Ich implementiere derzeit ein Keras-Modell mit mehreren Ein- und Ausgängen. Die Anzahl der Ein- und Ausgänge ist identisch.Keras: Abrufen der Genauigkeit für jeden Modellausgang
Der Ausgabe-Teil meines Codes sieht wie folgt aus. Es enthält für-Schleife, wie es soll ein dynamisches, Multi-Stream-Modell sein:
...
for s in range(NUM_STREAMS):
x[s] = Dense3(x[s])
logits.append(Softmax0(x[s]))
model = Model(
inputs=[inp_ele for inp_ele in inp],
outputs=[logit for logit in logits]
)
sgd = optimizers.SGD(lr=0.1)
model.compile(loss='categorical_crossentropy', optimizer=sgd, metrics=['accuracy'])
Jetzt möchte ich die Genauigkeit für jede logit
innerhalb des Modells abzurufen. Allerdings gibt print(model.metrics_names)
Anwendung mir die folgenden (es ist ein 3-Stream-Modell in diesem Beispiel):
['loss', 'activation_8_loss', 'activation_8_loss', 'activation_8_loss',
'activation_8_acc', 'activation_8_acc', 'activation_8_acc']
Nun, wenn ich versuche, die Geschichte Objekt aus der model.fit
Funktion abrufen, es gibt mir ein
KeyError: [-1] #Instead of the -1, it is respectively and of the lower list-indecies
Ich habe versucht, die Genauigkeit mit den folgenden Methoden abrufen, und keiner von ihnen funktioniert.
print(history.history['activation_8_acc'])
print(history.history['activation_8_acc'][-1])
print(history.history[-1])
Wie kann ich die individuellen Genauigkeiten abrufen? Oder wenn es möglich ist, wie kann ich die mittlere Genauigkeit für dieses Modell abrufen?