为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我的 Keras LSTM 中不需要 TimeDistributed?

为什么我的 Keras LSTM 中不需要 TimeDistributed?

幕布斯6054654 2021-12-29 20:26:41
我知道这个话题有很多问题,但我不明白为什么在我的情况下这两种选择都是可能的。我在 LSTM 中的输入形状是 (10,24,2),我的 hidden_size 是 8。model = Sequential()    model.add(LSTM(hidden_size, return_sequences=True, stateful = True,                batch_input_shape=((10, 24, 2))))model.add(Dropout(0.1))为什么可以在下面添加这一行:model.add(TimeDistributed(Dense(2))) # Option 1或者这个:model.add(Dense(2)) # Option 2应该不会Option 2导致编译错误,因为它需要二维输入?
查看完整描述

1 回答

?
红颜莎娜

TA贡献1842条经验 获得超12个赞

在您的情况下,您定义的 2 个模型是相同的。

这是因为您使用了return_sequences=True参数,这意味着该Dense层将应用于每个时间步,就像TimeDistributedDense但如果您切换到False那么 2 个模型不相同,并且在TimeDistributedDense版本的情况下会引发错误,尽管不在Dense一个中。

对于类似的情况,这里也提供更彻底的解释。


查看完整回答
反对 回复 2021-12-29
  • 1 回答
  • 0 关注
  • 173 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信