我目前正在与Keras合作开发LSTM,我对TimeDistributed
图层有疑问。
假设我有一个TimeDistributed
图层,其输入类似于(batch_size,timesteps,num_features1)
。它将输出类似(batch_size,timesteps,num_features2)
的内容。
我希望输出类似(batch_size,num_features2)
的内容。有可能吗?
将带有return_sequence = True
的LSTM图层堆叠到密集图层(使用TimeDistributed
图层),然后返回“经典”密集图层,接受像(batch_size,nb_features)
这样的输入
提前致谢!
Benoit
答案 0 :(得分:0)
我不确定你完全理解你想要什么,所以我会在这里建立一个我认为你想要的网络。如果不是,请使用您想要的网络草稿和每个步骤的形状编辑您的问题。 通过此网络了解您想要实现的目标也更容易。
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)使用密集层将值序列转换为一个理想的输出(我不知道它应该是什么,你的模型的目的是什么?)。