我试图了解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层之间的区别?
Dense
输入变平然后重新整形的层之间进行区分,从而连接不同的时间步长并具有更多参数,并TimeDistributed
保持时间步长分开(因此具有较少的参数)。在您的情况下,Dense
应该有500个参数,TimeDistributed
只有50个