【问题标题】:Keras layers.pop() is not removing layerKeras layers.pop() 没有删除图层
【发布时间】:2021-03-13 15:14:12
【问题描述】:

我正在尝试删除模型末尾的 lambda 层,但 layers.pop() 对我不起作用:

conv1d_8 (Conv1D)            (None, None, 32)          2080      
_________________________________________________________________
dense_1 (Dense)              (None, None, 128)         4224      
_________________________________________________________________
dropout_1 (Dropout)          (None, None, 128)         0         
_________________________________________________________________
dense_2 (Dense)              (None, None, 1)           129       
_________________________________________________________________
lambda_1 (Lambda)            (None, None, 1)           0         
=================================================================
Total params: 19,009
Trainable params: 19,009
Non-trainable params: 0

上面的代码显示了模型的最后一层。要删除 lambda 层,我执行以下操作:

model_old.layers.pop()
x = model_old.output
pred = Lambda(slice, arguments={'seq_length':7})(x)
new_model = Model(inputs=model_old.input, outputs=pred)

但由于某种原因,当我打印摘要时,该层没有被删除:

_________________________________________________________________
lambda_1 (Lambda)            (None, None, 1)           0         
_________________________________________________________________
lambda_5 (Lambda)            (None, None, 1)           0         
=================================================================
Total params: 19,009
Trainable params: 19,009
Non-trainable params: 0 

您如何实际删除图层并添加新图层?

【问题讨论】:

    标签: keras neural-network conv-neural-network pre-trained-model


    【解决方案1】:

    通过以下方式修复它:

    x = (model_old.layers[-2].output)
    

    【讨论】:

      猜你喜欢
      • 2017-03-31
      • 2020-02-27
      • 2019-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多