【发布时间】:2019-05-09 06:25:01
【问题描述】:
我正在尝试更好地理解 Keras 层。我正在研究一个序列到序列的模型,我在其中嵌入了一个句子并将其传递给返回序列的 LSTM。此后,我想对句子中的每个时间步(单词)应用一个 Dense 层,看起来 TimeDistributed 对这种情况下的三维张量做了这项工作。
据我了解,密集层仅适用于二维张量,而 TimeDistributed 仅在三个维度的每个时间步上应用相同的密集。那么,是否可以不简单地展平时间步长,应用密集层并执行重塑以获得相同的结果,或者这些在某种程度上不是我所缺少的?
【问题讨论】:
-
那么你会有一个大的密集层,每个时间步都有不同的参数,而不是对输入中的每个时间步应用相同的单时间步密集层。
-
我假设必须以某种方式将密集层连接到每个时间步,以便更新反向道具的权重?我认为我未能正确掌握这个概念是因为我无法想象这些方法。
-
正如@Andrey Kite Gorin 下面提到的,密集层可以应用 3D 张量,它们完全符合您的喜好。我认为有一些早期版本的 Keras,你必须使用 TimeDistributed,因为 Dense 仅适用于 2D 张量,这就是为什么一些教程仍然有它的原因。
标签: tensorflow machine-learning keras lstm keras-layer