在Keras中,TimeDistributed层的作用是什么?
0 964
0

我想了解TimeDistributed层在Keras中的作用。

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

在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)。

收藏
2021-02-03 14:56 更新 anna •  3934
共 1 个回答
高赞 时间
0

在keras中-在构建顺序模型时-通常是第二个维度(一个在样本维度之后)-与时间维度相关。 这意味着,例如,你的数据是5DIM的(样本、时间、宽度、长度、通道),则可以使用TimeDistributed(适用于具有时间维度(样本、宽度、长度、通道)的4DIM)应用卷积层(将同一层应用于每个时间片),以获得5D输出。

Dense的情况是,在2.0版本的keras中,Dense默认只应用于最后一个维度。例如, 如果将 Dense(10) 应用于(n,m,o,p)的输入,则会得到(n,m,o,10)的输出,因此在你的情况下,Dense 和TimeDistributed(Dense) 是等价的。

Via:https://stackoverflow.com/a/47309453/14964791

收藏
2021-02-03 15:36 更新 karry •  3510