首页 文章

Keras保存单个层的重量而不是模型

提问于
浏览
2

我目前正在尝试创建多个模型,这些模型将重用某些层,包括它们的权重 . 我通过创建一个初始化这些图层的列表来实现这一点,然后在创建每个单独的模型时调用它们 .

column = []
column.append(Conv2D(self.out_filters, (3, 3), padding='same', kernel_initializer='he_normal', activation='relu'))
column.append(Conv2D(self.out_filters, (5, 5), padding='same', kernel_initializer='he_normal', activation='relu'))

然后在创建模型时

layer = column[0](input)

现在我的问题是,如何保存列表中所有图层的权重?据我所知,keras的保存功能仅保存已正确构建的整个模型 .

Edit: 为了澄清,我想保存"column"列表,而不是最终型号 . 我在使用"column"中存储的图层时随机生成模型结构 . 因此,2个模型可能具有不同的体系结构,但它们具有共享权重(对一个模型的训练也将影响另一个模型的权重) .

1 回答

  • 0

    像这样 .

    model.save_weights('my_model_weights.h5')
    

    model.get_weights()也可用于获取模型的权重,然后手动保存它们以便以后使用

    model.get_weights()
    

    Link .

相关问题