简体   繁体   中英

Trouble Loading Weights of a model in Keras

I have trained a model using GloVe word embeddings and have saved the architecture and weights of the model. I want to make some small changes to the models network and train the model again. Here is my code:

#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()

When I call model2, it is failing. The error message is:

ValueError: Cannot create group in read only mode.

I changed some of the layers ahead in the create_model() function, and I ultimately want to train the model (using the weights I previously saved) and predict on a testing set.

Any help would be great!

Edit: forgot to post portion in which the model is being compiled. Added it in the function.

I don't understand your code, Your create a new Model does not compile it and load a new model instead that would erase your model?

  1. As a matter of rule, you should rewrite your model from scratch, because as it is compiled, it is not mutable anymore. By accessing your Model objects attributes / print_summary you can have a view of the architecture of your model

  2. Each weights are optimized for a given architecture, it not sure that using pretrained weights from another architecture save computation time, it increases the risk of overfitting

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM