如何不在 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) 使用密集层将值序列转换为期望的输出(我不知道它应该如何,你的模型的目的是什么?)。
我目前正在使用 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) 使用密集层将值序列转换为期望的输出(我不知道它应该如何,你的模型的目的是什么?)。