Keras:嵌入LSTM

Keras:嵌入LSTM,keras,lstm,embedding,Keras,Lstm,Embedding,在LSTM上用于建模IMDB序列数据()的keras示例中,在输入LSTM层之前有一个嵌入层: model.add(Embedding(max_features,128)) #max_features=20000 model.add(LSTM(128)) 嵌入层真正做什么?在这种情况下,这是否意味着进入LSTM层的输入序列的长度是128?如果是这样,我可以将LSTM层写为: model.add(LSTM(128,input_shape=(128,1)) 但还应注意的是,输入X_列已进行pad

在LSTM上用于建模IMDB序列数据()的keras示例中,在输入LSTM层之前有一个嵌入层:

model.add(Embedding(max_features,128)) #max_features=20000
model.add(LSTM(128))
嵌入层真正做什么?在这种情况下,这是否意味着进入LSTM层的输入序列的长度是128?如果是这样,我可以将LSTM层写为:

model.add(LSTM(128,input_shape=(128,1))
但还应注意的是,输入
X_列
已进行
pad_序列
处理:

print('Pad sequences (samples x time)')
X_train = sequence.pad_sequences(X_train, maxlen=maxlen) #maxlen=80
X_test = sequence.pad_sequences(X_test, maxlen=maxlen) #maxlen=80
似乎输入序列长度为80?

将正整数(索引)转换为固定大小的密集向量。 例如[4],[20]->[0.25,0.1],[0.6,-0.2]]

基本上,这会将索引(表示IMDB评论中包含的单词)转换为具有给定大小的向量(在您的示例中为128)

如果您不知道一般的嵌入是什么,那么:

单词嵌入是一组语言建模的总称 和自然语言处理(NLP)中的特征学习技术 将词汇表中的单词或短语映射到 相对于词汇表的低维空间中的实数 大小(“连续空间”)

回到你问的另一个问题:

在这种情况下,这是否意味着输入序列的长度 LSTM层是128

不完全是。对于循环网络,您将有一个时间维度和一个特征维度。128是您的特征维度,就像每个嵌入向量应该有多少维度一样。示例中的时间维度存储在
maxlen
中,用于生成训练序列

无论你提供的是什么,都是128