Wie interpretieren Keras Modell.fit-Ausgang?
Ich habe gerade angefangen mit Keras. Die Probe, die ich arbeite, hat ein Modell und das folgende snippet verwendet werden, um das Modell
from sklearn.preprocessing import LabelBinarizer
label_binarizer = LabelBinarizer()
y_one_hot = label_binarizer.fit_transform(y_train)
model.compile('adam', 'categorical_crossentropy', ['accuracy'])
history = model.fit(X_normalized, y_one_hot, nb_epoch=3, validation_split=0.2)
Bekomme ich die folgende Antwort:
Using TensorFlow backend. Train on 80 samples, validate on 20 samples Epoch 1/3
32/80 [===========>..................] - ETA: 0s - loss: 1.5831 - acc:
0.4062 80/80 [==============================] - 0s - loss: 1.3927 - acc:
0.4500 - val_loss: 0.7802 - val_acc: 0.8500 Epoch 2/3
32/80 [===========>..................] - ETA: 0s - loss: 0.9300 - acc:
0.7500 80/80 [==============================] - 0s - loss: 0.8490 - acc:
0.8000 - val_loss: 0.5772 - val_acc: 0.8500 Epoch 3/3
32/80 [===========>..................] - ETA: 0s - loss: 0.6397 - acc:
0.8750 64/80 [=======================>......] - ETA: 0s - loss: 0.6867 - acc:
0.7969 80/80 [==============================] - 0s - loss: 0.6638 - acc:
0.8000 - val_loss: 0.4294 - val_acc: 0.8500
Den Dokumentation sagt, die passen, gibt
Geschichte Instanz. Seine Geschichte Attribut enthält alle Informationen
gesammelt während der Ausbildung.
Weiß jemand, wie interpretieren Sie die Geschichte Instanz?
Was hat zum Beispiel 32/80 bedeuten? Ich nehme an, 80 ist die Anzahl der Proben aber was ist 32? ETA: 0s ??
Du musst angemeldet sein, um einen Kommentar abzugeben.
ETA = Voraussichtliche Ankunftszeit.
80
ist die Größe Ihres - training-set,32/80
und64/80
bedeutet, dass die batch-Größe ist 32 und ist derzeit die erste batch (oder die zweite charge bezeichnet) verarbeitet wird.loss
undacc
beziehen sich auf den aktuellen Verlust und die Richtigkeit der Ausbildung.Am Ende jeder Epoche Ihre trainierten NN evaluiert wird, Ihre Validierungsdaten. Dies ist, was
val_loss
undval_acc
finden.Dem history-Objekt zurückgegeben
model.fit()
ist eine einfache Klasse mit einigen Feldern, z.B. einen Verweis auf diemodel
eineparams
dict und, am wichtigsten, einhistory
dict. Es speichert die Werte derloss
undacc
(oder jede andere Metrik verwendet) am Ende jeder Epoche. Für 2 Epochen wird es so Aussehen:Dieses kommt in sehr handliches, wenn Sie wollen visualisieren Ihre Fortschritte im training.
Hinweis: wenn Ihre Validierung Verlust/Genauigkeit beginnt, steigt, während Ihrer Ausbildung den Verlust bzw. die Genauigkeit ist immer noch sinkt, ist dies ein Anzeichen von overfitting.
Hinweis 2: ganz am Ende, sollten Sie testen, Ihre NN gegen einige test-set, die Verschieden von Ihnen-training-set und Validierung setzen und so noch nie berührt worden ist, während der Ausbildung.
loss
immer die Aktualisierung an. Nun, sagen Sie mir, wenn dieloss
ist evalauted über dieentire dataset
oder einfach nur auf derbatch
. TIA.32
ist Ihre batch-Größe. 32 ist der Standard-Wert, den Sie ändern können, in Ihrem fit-Funktion, wenn Sie so tun möchten.Nachdem der erste Stapel ist ausgebildete Keras Schätzungen der Ausbildung Dauer (ETA: geschätzte Zeit der Ankunft von einer Epoche, die äquivalent zu einer Runde training mit allen Ihren Proben.
Zusätzlich zu, dass Sie die Verluste (die Differenz zwischen Vorhersage und wahrer Etiketten) und Ihre Metrik (in deinem Fall die Genauigkeit) für das training und die Validierung Proben.
80/80
bedeutet "80 Proben von insgesamt 80 Proben" ausgebildet wurden. Deshalb ist der erste Eintrag, den Sie sehen, ist32/80
sagt: "32 von insgesamt 80 Proben". Die Genauigkeit wiederum berechnet sich aus den Werten, die Ihr Netzwerk an dieser Stelle prognostiziert vs die eigentlichen Werte, die Sie angegeben haben, in form Ihrer Etiketten.