keras的Embedding层

Posted wzdly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了keras的Embedding层相关的知识,希望对你有一定的参考价值。

keras.layers.embeddings.Embedding(input_dim, output_dim, embeddings_initializer=uniform, embeddings_regularizer=None, activity_regularizer=None, embeddings_constraint=None, mask_zero=False, input_length=None)

输入shape:形如(samples,sequence_length)的2D张量

输出shape:形如  (samples, sequence_length, output_dim)  的3D张量

重要参数

input_dim:        整数,字典长度,即输入数据最大下标+1

output_dim:      整数,代表全连接嵌入的维度

input_length:    当输入序列的长度固定时,该值为其长度。如果要在该层后接Flatten层,然后接Dense层,则必须指定该参数,否则Dense层的输出维度无法自动推断。

 举例说明上述参数:

假设单词表大小为1000,词向量的维度为300,那么Embedding的参数 input_dim=10000,output_dim=300。

嵌入层将正整数(下标)转换为具有固定大小的向量,如[[4],[20]]->[[0.25,0.1],[0.6,-0.2]]。

举个栗子:

假如单词表的大小为1000,词向量维度为2,经单词频数统计后,tom对应的id=4,而jerry对应的id=20,经上述的转换后,我们会得到一个M1000×2的矩阵,而tom对应的是该矩阵的第4行,取出该行的数据就是[0.25,0.1]。

 

以上是关于keras的Embedding层的主要内容,如果未能解决你的问题,请参考以下文章

带有嵌入层的 Keras LSTM 自动编码器

使用 Embedding 层创建 Keras 深度学习模型,但在训练时返回错误

keras常见层用法备忘

Keras嵌入层:将零填充值保持为零

Embedding层实现

如何在 Gensim 的 Word2Vec 中正确使用 get_keras_embedding()?