2017-02-04 4 views
5

J'utilise le modèle séquentiel dans Keras. Je voudrais vérifier le poids du modèle après chaque époque. Pourriez-vous s'il vous plaît me guider sur la façon de le faire.Comment vérifier les poids après chaque epoc dans le modèle Keras

model = Sequential() 
model.add(Embedding(max_features, 128, dropout=0.2)) 
model.add(LSTM(128, dropout_W=0.2, dropout_U=0.2)) 
model.add(Dense(1)) 
model.add(Activation('sigmoid')) 
model.compile(loss='binary_crossentropy',optimizer='adam',metrics['accuracy']) 
model.fit(X_train, y_train, batch_size=batch_size, nb_epoch=5 validation_data=(X_test, y_test)) 

Merci d'avance.

Répondre

1

Ce que vous cherchez est une CallBack fonction. Un rappel est une fonction de Keras qui est appelée répétitivement pendant l'entraînement à des points clés. Cela peut être après un lot, une époque ou toute la formation. Voir here pour doc et la liste des rappels existants.

Ce que vous voulez est un CallBack personnalisé qui peut être créé avec un objet LambdaCallBack.

from keras.callbacks import LambdaCallback 

model = Sequential() 
model.add(Embedding(max_features, 128, dropout=0.2)) 
model.add(LSTM(128, dropout_W=0.2, dropout_U=0.2)) 
model.add(Dense(1)) 
model.add(Activation('sigmoid')) 

print_weights = LambdaCallback(on_epoch_end=lambda batch, logs: print(model.layers[0].get_weights())) 

model.compile(loss='binary_crossentropy',optimizer='adam',metrics['accuracy']) 
model.fit(X_train, 
      y_train, 
      batch_size=batch_size, 
      nb_epoch=5 validation_data=(X_test, y_test), 
      callbacks = [print_weights]) 

le code ci-dessus doit imprimer votre poids d'encastrement model.layers[0].get_weights() à la fin de chaque époque. À vous d'imprimer où vous voulez le rendre lisible, pour le jeter dans un fichier de conserves au vinaigre, ...

Hope this helps

+0

Merci pour votre réponse, mais si je veux sauver tous les poids dans la liste plutôt que de l'imprimer, comment puis-je faire cela? J'ai essayé les logs ["poids"]. Append (model.layers [0] .get_weights() mais ça ne marche pas – jimmy15923