如何在lstm中设置输入层的长度

时间:2019-02-24 14:57:03

标签: keras lstm

我正在建立一个LSTM模型,以便使用Keras对一些评论数据进行分类。输出仅为1或0。

在将文本数据输入lstm层之前,我添加了一个词嵌入层。我的部分代码如下所示。这是max_feature是词汇量。字向量的大小为2。每个文档的大小为maxlen。所有文档已经被填充为相同的长度。

但是,我总是对LSTM层的长度感到困惑。该长度应与我的文件长度(最大)相同吗?输入每个文档中的所有单词,并获得输出?.....

有很多在线资源介绍LSTM。但是在实现方面,我觉得没有很多人给出明确的解释...

如果有人可以澄清这一点,我们将不胜感激。

# max_features: vocabulary size
# word vector size: 2
# maxlen: my document size, already padded to the same length
# Build our model
print('Build model...')
model = Sequential()
model.add(Embedding(input_dim=max_features, output_dim= 2, input_length=maxlen ))
model.add(LSTM(units= ???? ))  
model.add(Dense(1))

model.add(Activation('sigmoid'))
model.compile(loss='binary_crossentropy',            
              optimizer='adam',
              metrics=['accuracy'])

1 个答案:

答案 0 :(得分:1)

LSTM中的单位数与数据维无关,单位是LSTM层中的神经元/节点数。 LSTM是一个递归网络,该参数在同一层上反复使用: image taken from http://colah.github.io/posts/2015-08-Understanding-LSTMs/

'A'代表LSTM单元格,'A'的数量与您输入的长度相同。单位代表“ A”的隐藏尺寸。