合并层的Keras模型权重组织

时间:2018-01-13 19:05:34

标签: tensorflow keras

我试图保存并加载合并图层的模型的权重。由于我的模型代码有点长,让我通过使用一个简单的示例和伪样式代码来缩短它。

首先,我的模型看起来像这样:

$

所以,在训练结束后,我只保存了final_mode的重量。

def some_model():
  model1 = Sequential()
  model1.add(...)

  model2 = Sequential()
  model2.add(..)

  final_model = Sequential()
  final_model.add(Merge[model1, model2], mode='concat')

  return final_model

当我加载重量进行进一步训练或测试时,它没有问题。

final_model.save_weights('w_final_model.h5')

到目前为止一切顺利。然而,当我试图调查final_model层的形状时,我的好奇心就来了。

显然,final_model只有自己的图层。换句话说,它并没有看起来携带model1和model2的所有权重向量。但是,它仍然有效。我想知道这是怎么可能的。或者,是否仅在为model_和model2权重再次初始化时加载final_model图层的权重?然而,网络的输出太好了,不能假设model1和model2权重是新初始化的。实际上,我是否需要分别保存每个模型的重量?

0 个答案:

没有答案