【发布时间】:2019-09-17 18:38:18
【问题描述】:
我想使用一个(2 层)预训练 LSTM 模型,并且我想在最后一个 Dense 层之前添加一个新的 LSTM 层。所以我要添加的层将是第三层。由于预训练模型的第二个 LSTM 已设置 return_sequences=True。我无法添加第三个 LSTM 层。如何使用 LSTM 更改任何层的预训练模型的配置以添加另一个 LSTM 层。我不热衷于制作另一个模型副本并复制权重。我想改变现有模型本身。
我正在尝试:
model.layers[-1].return_sequences=True
此语句不会产生任何错误。但是层配置还是显示return_sequences=False
我还尝试将层的配置显式更改为:
config=model.layers[-1].get_config()
config['layers']['config']['return_sequences']=True
这会改变字典配置中 return_sequences 的值。但我不知道如何更改图层。类似的东西不起作用。
model.layers[-1]=LSTM.from_config(config)
它让 init 至少需要两个参数。
模型的Layer[-1]实际上是一个双向包裹的LSTM。
【问题讨论】:
-
return_sequences = True是唯一的方式来一个接一个地添加 LSTM。你确定这是你的问题吗? -
顺便说一句,在 Keras 中更改现有模型以在其间添加一层比构建具有两层的新模型更难。
-
我想将预训练模型的 return_sequences=False 设置为 True 而不构建另一个副本。
标签: keras lstm keras-layer