【发布时间】:2018-04-28 13:44:20
【问题描述】:
我正在尝试了解 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 层之间的区别?
【问题讨论】:
-
目前ssem没有区别,here有讨论。我认为最初的意图是区分
Dense层将输入展平然后重新整形,从而连接不同的时间步并具有更多参数,而TimeDistributed保持时间步分离(因此具有更少的参数)。在您的情况下,Dense应该有 500 个参数,TimeDistributed只有 50 -
@gionni 不,它具有相同数量的参数(均为 6 个)。所以atm几乎没有区别?
-
是的,如果存在差异,这些参数就是它们的数量。暂时没有
标签: python machine-learning keras neural-network deep-learning