Keras:嵌入LSTM
在LSTM上用于建模IMDB序列数据()的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
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