2017-02-04 26 views
5

Tôi đang sử dụng mô hình tuần tự trong Keras. Tôi muốn kiểm tra trọng lượng của mô hình sau mỗi thời đại. Bạn có thể hướng dẫn tôi làm thế nào để làm như vậy.Cách kiểm tra trọng số sau mỗi epoc trong mô hình 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)) 

Xin cảm ơn trước.

Trả lời

1

Điều bạn đang tìm kiếm là chức năng CallBack. Một cuộc gọi lại là một hàm Keras được gọi là lặp đi lặp lại trong quá trình đào tạo tại các điểm chính. Nó có thể sau một đợt, một kỷ nguyên hoặc toàn bộ khóa đào tạo. Xem here cho tài liệu và danh sách các cuộc gọi lại hiện có.

Điều bạn muốn là một CallBack tùy chỉnh có thể được tạo bằng đối tượng 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]) 

mã ở trên sẽ in trọng số nhúng của bạn model.layers[0].get_weights() vào cuối mỗi kỷ nguyên. Tùy thuộc vào bạn để in nó nơi bạn muốn làm cho nó có thể đọc được, để đổ nó vào một tập tin dưa, ...

Hope this helps

+0

Cảm ơn bạn đã trả lời của bạn, nhưng nếu tôi muốn để lưu tất cả các trọng vào danh sách thay vì in ra, tôi có thể làm như thế nào? Tôi đã thử các bản ghi ["trọng lượng"]. Chắp thêm (model.layers [0] .get_weights() nhưng nó không hoạt động – jimmy15923

Các vấn đề liên quan