python - 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 个隐藏状态?希望你能明白我的期待。
解决方案
简短回答: 如果你更熟悉卷积网络,你可以知道 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
)
推荐阅读
- java - 仅使用基本技术的没有重复的 Java 数组
- sql - 在允许 INSERT 之前检查数据的 Oracle SQL 约束
- javascript - 似乎无法使用点或数组表示法在 javascript 中访问对象中的值
- alpine - (GVM) 10 关于高山问题
- excel - 如何在 Excel 中将一行转换为一列?
- android - React Native:即使可以从模拟器浏览器访问,也无法连接到 localhost
- reactjs - 在反应中渲染卡片网格时屏幕闪烁/卡顿
- python - 在 Python 中将原始图像拆分为通道
- javascript - 刮亚马逊品牌页面
- java - 回收器视图适配器现在在片段中显示数据