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]。