Keras LSTM 中隐藏状态的含义

Sat*_*gan 3 python nlp lstm keras tensorflow

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

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

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

例如:

X = LSTM(128, return_sequences=True)(embeddings)
Run Code Online (Sandbox Code Playgroud)

这看起来的夏天

lstm_1 (LSTM)                (None, 10, 128)           91648    
Run Code Online (Sandbox Code Playgroud)

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

Dan*_* GL 5

简短回答: 如果您更熟悉卷积网络,则可以将 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

在此处输入图片说明