如何使用没有嵌入层的LSTM架构在keras中编写简单的序列复制任务?我已经有了vector这个词。
答案 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)))