如何从已保存的模型加载权重

时间:2019-07-31 18:59:08

标签: python keras

我有一个受过训练的keras模型,该模型保存为model.save()。当我加载并打印摘要时,它显示如下。

Layer (type)                 Output Shape              Param #   
=================================================================
input_1 (InputLayer)         (None, 2)                 0         
_________________________________________________________________
model_1 (Model)              (None, 8)                 83208     
=================================================================
Total params: 83,208
Trainable params: 83,208
Non-trainable params: 0
_________________________________________________________________ 

现在,我想将上述网络中的model_1(6层网络)的权重加载到具有相同架构的模型中。当我尝试从model.load_weights()加载时,出现一条错误消息,提示我无法从2层网络加载到6层网络。这是因为model_1只是上述模型中的一层。如何从该层分别访问和加载权重?

1 个答案:

答案 0 :(得分:1)

您可以使用model.layers访问模型的各个层,然后使用model.layers[1]访问model_1。然后,您可以通过model.layers[1].load_weights(...)加载权重。