2

Ich versuche derzeit, ein Modell mit mbatch-Normalisierung in Keras zu implementieren. Ich habe es erfolgreich für die Trainingsphase implementiert.Wie verwende ich die Batch-Normalisierung während der Testzeit in Keras?

Zum Testen berechnet Chargennormalisierung jedoch die Statistik (Mittelwert und Varianz) der gesamten Population, bevor ein Vorwärtsdurchlauf durch das Netzwerk durchgeführt wird (BN-Mittelwert und Varianz werden vorberechnet und dann konstant gehalten; im Gegensatz zur Trainin-Phase, bei der Mittelwert und Varianz durch die Charge bestimmt werden).

Meine Frage Keras Bezug ist:

Angenommen (x, y) ist die gesamte Bevölkerung. Angenommen (X_batch, y_batch) eine Charge (eine Teilmenge dieser gesamten Bevölkerung)

Wenn ich die Verwendung

model.test_on_batch(X_batch, y_batch) 

wie ich den Mittelwert und die Varianz des auf die chargenNormalisierungsSchicht weitergeben kann gesamte Bevölkerung für X und Y? Gibt es eine Möglichkeit, dass Keras das automatisch handhaben kann?

+0

Haben ich Ihre Frage beantwortet? – MaxB

+0

@MaxB, ja du hast, vielen Dank! Es löste das Problem nicht, das ich hatte, aber Sie beantworteten meine Frage :) – DaveTheAl

Antwort

3

Wie kann ich den Mittelwert und die Varianz der Gesamtpopulation für X und Y an die Stapelnormierungsschicht übergeben? Gibt es eine Möglichkeit, dass Keras das automatisch handhaben kann?

Keras sollte es einfach tun (in ausreichend neueren Versionen):

https://github.com/fchollet/keras/issues/81

To-Check verdoppeln, sollten Sie batch_size=1 bei Test/Prognose Zeit, um zu versuchen, und wenn Keras zu verwenden, schlägt fehl Bei den globalen Statistiken werden Sie wahrscheinlich sehr schlechte Ergebnisse sehen.

Verwandte Themen