Keras 如何仅为某些层加载权重?

Keras 如何仅为某些层加载权重?,keras,Keras,我想从model\u-trained中选取一些层的权重(不是全部,因为架构不同),并用它初始化model\u-untrained。如何使用Keras执行此操作?如果您有一个函数create_model()返回Keras model(),则可以如下初始化其权重: from keras.models import load_model model_untrained = create_model() model_trained = load_model('trained_model.h5') e

我想从
model\u-trained
中选取一些层的权重(不是全部,因为架构不同),并用它初始化
model\u-untrained
。如何使用Keras执行此操作?

如果您有一个函数
create_model()
返回Keras model(),则可以如下初始化其权重:

from keras.models import load_model

model_untrained = create_model()
model_trained = load_model('trained_model.h5')

extracted_weights = model_trained.layers[0].get_weights()
model_untrained.layers[0].set_weights(extracted_weights)

提取的_权重的类型是一个列表。在我的例子中,我试图从特定层的自定义训练模型中提取特征。seq.add(Dense(128,name='feature_Dense'))seq.load_weights(by_name=True,filepath='weights-improvement.hdf5')#培训模型后,此处未定义面向问题的文件名。我使用下面的代码指向所需的层。中间层模型=模型(输入=模型。输入,输出=模型。获取层('feature\u densite')。输出)这里我得到一个错误-->值错误:没有这样的层:feature\u densite