将keras权重加载到特定图层

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将keras权重加载到特定图层相关的知识,希望对你有一定的参考价值。

我训练了一个3dCNN模型。我想在Keras中加载我存储的权重,直到特定的图层。我已将特定图层命名为name =“my_dense_layer”。如何加载权重直到该层?

我的模型看起来像:

enter image description here

我想通过跳过最后一次掉落和大小为6的Dense图层来加载我的权重。然后,我想投影我的大小为32x10x28x28的输入并使用具有输出大小为512的向量的特定Dense图层的权重尺寸。因此有作为输出32x512

答案

因为存储的权重排列为b1, w1, b2, w2 ...,我们可以逐层加载权重,直到my_dense_layer。可能的解决方案如下:

for layer in model.layers:
if layer.trainable_weights:
    b=weights.pop(0)
    w=weights.pop(0)
    layer.set_weights((b,w))
    if layer.name=='my_dense_layer':
        break

以上是关于将keras权重加载到特定图层的主要内容,如果未能解决你的问题,请参考以下文章

Keras:如何在编译期间输入形状未知时创建带权重的自定义图层?

加载权重 keras LSTM 不工作

使用 Keras,如何将 CuDNNLSTM 生成的权重加载到 LSTM 模型中?

为keras TimeDistributed图层按名称设置权重

Keras - 获得训练层的权重

在 keras 中保存和加载权重