【问题标题】:How to feed multiple outputs of previous layer to a successive lstm layer如何将前一层的多个输出馈送到连续的 lstm 层
【发布时间】:2017-04-13 13:51:13
【问题描述】:

我刚刚开始使用 Keras。我遇到了一个问题,即如何将先前层的多个输出馈送到连续的 lstm 层。我的模型(部分)如下所示:

batch_size = 64

output_1 = Dense(output_dim=(128, ), input_dim=(200, ))

output_2 = Dense(output_dim=(128,), input_dim=(200, ))

output_3 = Dense(output_dim=(128,), input_dim=(200, ))

output_4 = Dense(output_dim=(128,), input_dim=(200, ))

现在我的问题是如何将上述所有输出提供给 lstm ? input_dim 应该类似于 (batch_size, number_of_previous_outputs, 128)

【问题讨论】:

  • 您对这个问题还有兴趣吗?因为我认为我找到了解决方案?
  • @Marcin Możejko 抱歉回复晚了。我改变了我的神经网络结构。但我仍然对您的解决方案感兴趣。

标签: neural-network deep-learning keras lstm


【解决方案1】:

你可以做一个合并层 (https://keras.io/getting-started/sequential-model-guide/#the-merge-layer)。使用 concat 或 sum to 然后将合并层输入 lstm。

代码示例:

merged_output = merge([output_1, output_2, output_3, output_4], mode='concat', concat_axis=1)
lstm = LSTM(...)(merged_output)

【讨论】:

  • 感谢您的回复。我对您的合并输出层的形状感到困惑。 output_1 的形状是 (batch_size, output_dim),我需要 merge_output 的形状是 (batch_size, number_of_previous_output, output_dim) 。 @Thomas Pinetz
  • 你可以添加一个重塑层来完成你想要的输出。 keras.io/layers/core/#reshape
猜你喜欢
  • 2023-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-08
  • 1970-01-01
  • 1970-01-01
  • 2017-12-02
  • 2020-09-20
相关资源
最近更新 更多