由于我是深度学习的新手,因此这个问题可能对您很有趣。但我无法在脑海中想象它。这就是为什么我要问这个问题。
我正在给LSTM作为矢量的一个句子,认为我有一个包含10个单词的句子。然后,将这些句子更改为向量,并将其提供给LSTM。
LSTM单元的长度应为10。但是在大多数教程中,我已经看到它们添加了128个隐藏状态。我无法理解和可视化它。这个词在带有"128-dimensional hidden state"
例如:
X = LSTM(128, return_sequences=True)(embeddings)
这看起来像夏天
lstm_1 (LSTM) (None, 10, 128) 91648
这里看起来好像添加了10个LSTM单元,但是为什么那里有128个隐藏状态?希望您能理解我的期望。
答案 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
的尺寸)