关于LSTM对Keras的理解

时间:2018-04-06 11:51:58

标签: neural-network deep-learning keras lstm

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

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

import ...
import ...

def function(parameter):
 ....

根据Keras的说法,我的输出形状为(3,1)。

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

这是我不明白的。

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

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

1 个答案:

答案 0 :(得分:1)

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

换句话说,设置:

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

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