[英]Trouble Loading Weights of a model in Keras
我已經使用GloVe詞嵌入訓練了模型,並節省了模型的體系結構和權重。 我想對模型網絡進行一些小的更改,然后再次訓練模型。 這是我的代碼:
#Load back model, change architecture, train, predict
from keras import regularizers
from keras import layers
from keras.models import load_model
def create_model():
model = Sequential()
model.add(Embedding(max_fatures, embed_dim,input_length = X_train.shape[1]))
model.add(Bidirectional(LSTM(150, return_sequences=True, dropout= 0.1, recurrent_dropout=0.1)))
model.add(GlobalMaxPool1D())
model.add(Dense(50, activation="relu"))
model.add(Dropout(0.1))
model.add(Dense(6, activation="sigmoid"))
#Load GloVe
model.layers[0].set_weights([embedding_matrix])
model.layers[0].trainable = False
model = load_model('/content/model_num2.h5')
model.fit(X_train,y_train, nb_epoch=2, batch_size=32, show_accuracy=True, validation_split=0.1, verbose=2)
return(model)
model2 = create_model()
當我調用model2時,它失敗了。 錯誤消息是:
ValueError: Cannot create group in read only mode.
我在create_model()函數中更改了前面的某些層,最終我想訓練模型(使用之前保存的權重)並在測試集上進行預測。
任何幫助將是巨大的!
我不理解您的代碼,您創建的新Model
不會compile
並load
新模型,而是會刪除您的模型嗎?
通常,您應該從頭開始重寫模型,因為在編譯模型時,它不再可變。 通過訪問模型對象的屬性/ print_summary
您可以查看模型的體系結構
每個權重都針對給定的體系結構進行了優化,不能確保使用來自另一個體系結構的預訓練權重可以節省計算時間,但會增加過度擬合的風險
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.