首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Keras:嵌入LSTM

Keras:嵌入LSTM
EN

Stack Overflow用户
提问于 2017-06-26 11:57:26
回答 1查看 12.2K关注 0票数 6

在用于建模IMDB (lstm.py)的LSTM上的keras示例中,在输入到LSTM层之前有一个嵌入层:

代码语言:javascript
复制
model.add(Embedding(max_features,128)) #max_features=20000
model.add(LSTM(128))

嵌入层到底是做什么的?在这种情况下,这是否意味着LSTM层输入序列的长度为128?如果是这样,我是否可以将LSTM层写成:

代码语言:javascript
复制
model.add(LSTM(128,input_shape=(128,1))

但是还需要注意的是,输入X_train必须经过pad_sequences处理:

代码语言:javascript
复制
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?

EN

回答 1

Stack Overflow用户

发布于 2017-06-26 12:05:35

引用文件

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

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

如果您不知道什么是一般的嵌入,这是维基百科的定义

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

回到你问过的另一个问题:

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

不完全是。对于递归网,您将有一个时间维和一个特征维。128是您的特征维度,正如每个嵌入向量应该有多少维。示例中的时间维度是存储在maxlen中的内容,用于生成训练序列。

无论你向LSTM层是LSTM的实际输出单元数。提供128个。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44759194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档