【问题标题】:How to use Conv2D and LSTM layers with Keras?如何在 Keras 中使用 Conv2D 和 LSTM 层?
【发布时间】:2018-11-27 17:35:53
【问题描述】:

我有一个使用 Keras 与 Conv2D 一起工作的模型,但我想添加一个 LSTM 层。这是我正在使用的数据:

  • x_train 形状为 (13984, 334, 35, 1)
  • y_train with shape (13984, 5)

我没有 LSTM 的模型是:

inputs = Input(name='input',shape=(334,35,1))
layer = Conv2D(64, kernel_size=3,activation='relu',data_format='channels_last')(inputs)
layer = Flatten()(layer)
predictions = Dense(5, activation='softmax')(layer)
network = Model(inputs=inputs, outputs=predictions)
network.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])

在 Dense 层之前添加 LSTM 层的正确方法是什么?

我尝试使用 TimeDistributed 或 Reshape/Permute,但总是出错。

【问题讨论】:

标签: python keras conv-neural-network lstm rnn


【解决方案1】:

您的问题似乎与我昨天的问题相似。答案可以在这里找到:Keras functional API: Combine CNN model with a RNN to to look at sequences of images

【讨论】:

  • 非常感谢您的帮助。我试过你的方法。我只有两个问题:密集模型出现错误“顺序模型中的第一层必须得到input_shape”。我们应该使用哪个 input_shape?您如何为main_input 重塑数据?
【解决方案2】:

用户deKeijzer解释的方法有效。我找到了另一种解决问题的方法。它是在最后一个 Conv2D 层之后使用 Reshape 层(通过 (334,35) 重塑),然后添加 LSTM 层。

【讨论】:

  • 用 (334,35) 整形是什么意思?你的意思是从 cnn 部分重塑最后一个 conv 层?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-09-05
  • 2018-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-24
  • 1970-01-01
相关资源
最近更新 更多