To, czego szukasz, to funkcja CallBack
. Callback to funkcja Keras, która nazywa się powtarzalnie podczas treningu w kluczowych punktach. Może to być po partii, epoce lub całym treningu. Zobacz dokument here dla dokumentu i listę istniejących połączeń zwrotnych.
To, czego potrzebujesz, to niestandardowe wywołanie zwrotne, które można utworzyć za pomocą obiektu 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])
powyższy kod powinien wydrukować osadzania ciężary model.layers[0].get_weights()
pod koniec każdej epoki. Do ciebie, aby wydrukować ją tam, gdzie chcesz, aby to czytelne, aby zrzucić go do pliku marynowane, ...
nadzieję, że to pomaga
Dziękuję za odpowiedź, ale jeśli chcę zapisać wszystkie ciężary na liście, zamiast ją wydrukować, jak mogę to zrobić? Próbowałem logów ["wag"]. Append (model.layers [0] .get_weights(), ale to nie działa – jimmy15923