gpt4 book ai didi

python - Keras 中 TimeDistributed 层的作用是什么?

转载 作者:IT老高 更新时间:2023-10-28 21:32:01 28 4
gpt4 key购买 nike

我正在尝试了解 TimeDistributed 包装器在 Keras 中的作用。

我知道 TimeDistributed “将一个层应用于输入的每个时间切片。”

但是我做了一些实验,得到了我无法理解的结果。

简而言之,对于 LSTM 层,TimeDistributed 和 just Dense 层具有相同的结果。

model = Sequential()
model.add(LSTM(5, input_shape = (10, 20), return_sequences = True))
model.add(TimeDistributed(Dense(1)))
print(model.output_shape)

model = Sequential()
model.add(LSTM(5, input_shape = (10, 20), return_sequences = True))
model.add((Dense(1)))
print(model.output_shape)

对于这两个模型,我的输出形状都是 (None, 10, 1)

谁能解释下一个 RNN 层之后 TimeDistributed 和 Dense 层之间的区别?

最佳答案

keras 中 - 在构建顺序模型时 - 通常是第二个维度(样本维度之后的一个) - 与 time 维度相关。这意味着,例如,如果您的数据是 5-dim(sample, time, width, length, channel) 您可以使用 TimeDistributed 应用卷积层(适用于4-dim(sample, width, length, channel))沿时间维度(对每个时间片应用相同的层) ) 以获得5-d输出。

Dense 的情况是 keras 从 2.0 版开始 Dense 默认只应用于最后一个维度(例如,如果你应用 Dense(10) 输入形状 (n, m, o, p) 你会得到形状 (n, m, o, 10)) 所以在你的情况下 DenseTimeDistributed(Dense) 是等价的。

关于python - Keras 中 TimeDistributed 层的作用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47305618/

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