从keras中另一个模型的输出初始化一个模型的权重以进行迁移学习

时间:2019-04-16 17:42:34

标签: keras transfer-learning

我在第一个数据集上训练了LeNet架构。我想通过使用从LeNet获得的权重初始化VGG的权重来在其他数据集上训练VGG架构。

keras中的所有初始化函数都是预定义的,我找不到如何对其进行自定义。例如:

keras.initializers.Zeros()

有什么想法可以设置权重吗?

1 个答案:

答案 0 :(得分:0)

https://keras.io/layers/about-keras-layers/

根据上述Keras文档:

  • layer.set_weights(weights)从Numpy数组列表中设置图层的权重
  • layer.get_weights()以Numpy数组的列表形式返回图层的权重

因此,您可以按照以下步骤进行操作:

model = Sequential()
model.add(Dense(32))
... building the model's layers ...

# access any nth layer by calling model.layers[n]
model.layers[0].set_weights( your_weights_here )

当然,您需要确保将每层的权重设置为应具有的适当形状。