如何不在 Keras 中输出带有 TimeDistributed 层的序列?

How not to output a sequence with `TimeDistributed` layer in Keras?

我目前正在使用 Keras 研究 LSTM,我对 TimeDistributed 层有疑问。

假设我有一个 TimeDistributed 层,它接受类似 (batch_size,timesteps,num_features1) 的输入。它会输出类似 (batch_size,timesteps,num_features2) 的内容。

我想输出类似 (batch_size,num_features2) 的内容。可能吗?

这将是将具有 return_sequence = True 的 LSTM 层堆叠到密集层(使用 TimeDistributed 层),然后返回到 "classical" 接受输入的密集层 [= =17=].

提前致谢!

Benoit

我不确定是否完全理解您想要什么,所以我将在这里放置一个我认为是您想要的网络。如果不是,请使用您想要的网络草稿和每个步骤的形状来编辑您的问题。 也更容易知道你想通过这个网络实现什么。

model = sequential()
# shape = (None,timesteps, num_feat1)
model.add(TimeDistributed(Dense(num_feat2))
# shape = (None,timesteps, num_feat2)
model.add(LSTM(1, return_sequence=True))
# shape = (None, timesteps, 1)
model.add(Flatten())
# shape = (None, timesteps)
model.add(Dense(num_outputs_desired))
# shape = (None, outputs)

这是你想要的吗?这 (1) 使用密集层时间分布在每个时间步均等地转换初始特征,(2) 使用 lstm 处理序列,在每个步骤返回 1 个值,(3) 使用密集层将值序列转换为期望的输出(我不知道它应该如何,你的模型的目的是什么?)。