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