首页 > 解决方案 > Keras LSTM 中隐藏状态的含义

问题描述

由于我是深度学习的新手,这个问题对你来说可能很有趣。但我无法在脑海中想象它。这就是为什么我要问它。

我给了一个句子作为 LSTM 的向量,我想我有一个包含 10 个单词的句子。然后我将这些句子更改为向量并将其提供给 LSTM。

LSTM 单元的长度应该是 10。但在大多数教程中,我看到他们添加了 128 个隐藏状态。我无法理解和想象它。LSTM层的这个词是什么意思"128-dimensional hidden state"

例如:

X = LSTM(128, return_sequences=True)(embeddings)

这个夏天的样子

lstm_1 (LSTM)                (None, 10, 128)           91648    

这里看起来像添加了 10 个 LSTM 单元,但为什么那里有 128 个隐藏状态?希望你能明白我的期待。

标签: pythontensorflowkerasnlplstm

解决方案


简短回答: 如果你更熟悉卷积网络,你可以知道 LSTM 层的大小(128)相当于一个卷积层的大小。10 仅表示输入的大小(序列的长度为 10)

更长的答案: 您可以查看这篇文章以获取有关 RNN的更多详细信息。

在左图中,LSTM 层用 ( xt) 表示,作为输入,输出 ( ht)。反馈箭头表明细胞内有某种记忆。

在 Keras 的实践中(右图),这个模型被“展开”以将整个输入xt与我们的层并行。

所以当你的总结是: lstm_1 (LSTM) (None, 10, 128) 91648
这意味着你的输入序列是 10 ( x0,x1,x2,...,x9),并且你的 LSTM 的大小是 128 (128 将是你输出的维度ht

在此处输入图像描述


推荐阅读