从多层 Keras NN 中提取第一层权重并将它们转移到单层 NN

Extracting first-layer weights from a multi-layer Keras NN and transferring them to a single layer NN

我使用 Keras 训练了一个 3 隐藏层 NN (3-HL)(取得了很好的效果,我想从它的第一层(输入到它的第一个隐藏层)提取权重并将它们用于单隐藏层 NN(输入到它的单个隐藏层),进行训练。3-HL 模型摘要及其提取的(希望是第一层)权重维度如下:

enter image description here

enter image description here

enter image description here

下面是我打算使用从上述模型中提取的第一层权重进行训练的单隐藏层的相同信息:

enter image description here

enter image description here

enter image description here

如你所见。两个砝码的形状、大小和尺寸似乎都相似。但是当我把这一行设置为单隐藏层模型权重时,我得到一个 valueError 如下:

enter image description here

enter image description here

知道如何解决这个问题吗?

与其分别获取权重和偏差,不如将它们放在一起并将其输入到 set_weights() 函数中。尝试以下操作:

model.layers[0].set_weights(transfered_model.layers[0].get_weights())