gpt4 book ai didi

python - 在 Keras 中加载模型权重时出现问题

转载 作者:行者123 更新时间:2023-11-30 09:43:27 24 4
gpt4 key购买 nike

我已经使用 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() 函数中的一些前面的层,我最终想要训练模型(使用我之前保存的权重)并在测试集上进行预测。

任何帮助都会很棒!

编辑:忘记发布正在编译模型的部分。将其添加到函数中。

最佳答案

我不明白你的代码,您创建一个新的模型不会编译它并加载一个新模型,而是会删除您的模型?

  1. 作为一项规则,您应该从头开始重写您的模型,因为在编译它时,它不再可变。通过访问模型对象属性/print_summary,您可以查看模型的架构

  2. 每个权重都针对给定架构进行了优化,不确定使用其他架构的预训练权重是否可以节省计算时间,反而会增加过度拟合的风险

关于python - 在 Keras 中加载模型权重时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55924162/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com