KERA:嵌入到LSTM中 [英] Keras: Embedding in LSTM

查看:19
本文介绍了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?

推荐答案

To quote the documentation

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

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

如果您不知道一般的嵌入是什么,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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆