gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-30 02:51:31 25 4
gpt4 key购买 nike

我知道这个主题有很多问题,但我不明白为什么在我的情况下这两种选择都是可能的。我在 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

选项 2 是否应该导致编译错误,因为它需要二维输入?

最佳答案

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

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

提供了更详尽的解释here也有类似的情况。

关于python - 为什么我的 Keras LSTM 不需要 TimeDistributed?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55532683/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com