在Keras中,TimeDistributed层的作用是什么?
deep-learning
keras
machine-learning
neural-network
6
0

我试图了解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层之间的区别?

参考资料:
Stack Overflow
收藏
评论
共 1 个回答
高赞 时间 活跃

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

Dense的情况是,在版本2.0的keras中,默认情况下Dense仅应用于最后一个维度(例如,如果将Dense(10)应用于形状为(n, m, o, p)输入,则将得到形状为(n, m, o, 10) ),因此在您的情况下DenseTimeDistributed(Dense)是等效的。

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号