如何在没有嵌入层的情况下在Keras中编写LSTM?

时间:2016-05-11 18:45:55

标签: theano keras

如何使用没有嵌入层的LSTM架构在keras中编写简单的序列复制任务?我已经有了vector这个词。

2 个答案:

答案 0 :(得分:7)

如果你说你有单词向量,我想你有一个字典可以将单词映射到它的向量表示(从word2vec,GloVe ...计算)。

使用此词典,可以用相应的向量替换序列中的所有单词。您还需要使所有序列的长度相同,因为LSTM需要所有输入序列具有恒定长度。因此,您需要确定max_length值并修剪所有较长的序列,并用零填充所有较短的序列(请参阅Keras pad_sequences函数)。

然后,您可以将矢量化序列直接传递到神经网络的LSTM层。由于LSTM图层是网络的第一层,因此您需要定义输入形状,在您的情况下是(max_length,embedding_dim)。

这样您就可以跳过嵌入层并使用自己的预先计算的单词向量。

答案 1 :(得分:2)

Keras的“堆叠LSTM进行序列分类”部分中搜索后,我遇到了同样的问题,我发现以下代码可能有用: model = Sequential() model.add(LSTM(3NumberOfLSTM, return_sequences=True, input_shape=(YourSequenceLenght, YourWord2VecLenght)))

相关问题