关于 Keras 上的 LSTM 理解

Pusheen_the_dev

我想知道在 Keras 下 LSTM 是如何工作的。

让我们举个例子。我的最大句子长度为 3 个单词。示例:“你好吗”我将每个词向量化为 len 4 的向量。所以我将有一个形状 (3,4) 现在,我想使用 lstm 来做翻译的东西。(只是一个例子)

model = Sequential()
model.add(LSTM(1, input_shape=(3,4), return_sequences=True))
model.summary()

根据 Keras,我将有 (3,1) 的输出形状。

Layer (type)                 Output Shape              Param #   
=================================================================
lstm_16 (LSTM)               (None, 3, 1)              24        
=================================================================
Total params: 24
Trainable params: 24
Non-trainable params: 0
_________________________________________________________________

这是我不明白的。

LSTM 的每个单元(使用 return_sequences=True 来获得每个状态的所有输出)应该给我一个形状向量(时间步长,x),在这种情况下,时间步长是 3,x 是我的单词向量的大小(在在这种情况下,4)

那么,为什么我的输出形状为 (3,1) ?我到处搜索,但无法弄清楚。

维纳斯

你对 LSTM 应该返回什么的解释是不正确的。输出维度不需要与输入维度匹配。具体来说,keras.layers.LSTM的第一个参数对应于输出空间的维度,您将其设置为 1。

换句话说,设置:

model.add(LSTM(k, input_shape=(3,4), return_sequences=True))

将导致(None, 3, k)输出形状。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章