2017-09-04 3 views
1

Ich trainierte ein Modell mit Normalisierungsschicht. Der Code ist wie folgt:Wie vorhersagen, wenn trainiert mit Normalisierung oder Dropout-Layer in Keras?

In Trainingsphase:

model=Sequential() 
model.add() 

... 

k.set_learning_phase(1) 
ModelCheckpoint(weights_file) 
model.fit() 

In Inferenz Zeit:

k.set_learning_phase(0) 
model.load_weights(weights_file) 
model.predict_classes() 

... 

Die Version von Keras: 2.0.8. Ist das richtig, oder benötigen Sie einige spezielle Codes, um den BN nach dem Training wie SegNet in Caffe zu berechnen?

Antwort

2

Nein, bei Verwendung von BatchNormalization- oder Dropout-Layern müssen Sie nichts Besonderes tun. Keras verfolgt bereits die Lern-/Testphasen, so dass es bei Verwendung von predict oder predict_classes das Richtige tut.

Sie müssen die Lernphase nicht einmal manuell einstellen, Keras tut es schon.

+0

Vielen Dank für Ihre rechtzeitige Antwort. Ich hab es geschafft. – spider

Verwandte Themen