Keras LSTM中隐藏状态的含义

时间:2018-10-10 07:16:29

标签: python tensorflow keras nlp lstm

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

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

LSTM单元的长度应为10。但是在大多数教程中,我已经看到它们添加了128个隐藏状态。我无法理解和可视化它。这个词在带有"128-dimensional hidden state"

的LSTM层中是什么意思

例如:

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

这看起来像夏天

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

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

1 个答案:

答案 0 :(得分:2)

简短答案: 如果您更熟悉卷积网络,则LSTM层(128)的厚度可以等于卷积层的尺寸。 10仅表示您输入的大小(序列的长度为10)

更长的答案: 图片是从这个不错的article about RNNs中提取的,我建议进行详细说明。

在左图中,LSTM层用(xt)表示为输入,输出(ht)。反馈箭头表明该单元格内有某种内存。

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

因此,当您的摘要是:     lstm_1(LSTM)(无,10、128)91648
这意味着您的输入序列为10(x0,x1,x2,...,x9),并且LSTM的大小为128(128将是输出ht的尺寸)

enter image description here