KERA:嵌入到LSTM中 [英] Keras: Embedding in LSTM
本文介绍了KERA:嵌入到LSTM中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在用于建模IMDB序列数据(https://github.com/fchollet/keras/blob/master/examples/imdb_lstm.py)的LSTM上的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_train
经过了pad_sequences
处理:
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?
推荐答案
基本上,这会将索引(表示IMDB审查包含的单词)转换为具有给定大小的向量(在本例中为128)。将正整数(索引)转换为固定大小的密集向量。 例如。[[4],[20]]->[[0.25,0.1],[0.6,-0.2]]
如果您不知道一般的嵌入是什么,here is the wikipedia definition:
单词嵌入是一组语言建模的统称 自然语言处理(NLP)中的特征学习技术 其中词汇中的单词或短语被映射到 相对于词汇表的低维空间中的实数 大小("连续空间")。
回到您提出的另一个问题:
在这种情况下,这是否意味着输入序列的长度为 LSTM层为128?
不完全是。对于递归网络,您将有一个时间维度和一个特征维度。128是您的要素维度,即每个嵌入向量应该具有多少维度。您示例中的时间维度存储在maxlen
中,用于生成训练序列。
您向LSTM layer is the actual number of output units of the LSTM提供128的任何内容。
这篇关于KERA:嵌入到LSTM中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文