在看keras文檔embedding層的時候,不太理解其中的input_dim 和input_length 這兩個參數,查閱了一下資料,記錄下來。
keras.layers.Embedding(input_dim, output_dim, embeddings_initializer='uniform', embeddings_regularizer=None, activity_regularizer=None, embeddings_constraint=None, mask_zero=False, input_length=None)
- input_dim: int > 0。詞匯表大小, 即,最大整數 index + 1。
- output_dim: int >= 0。詞向量的維度。
在keras中,數據是以張量的形式表示的,張量的形狀稱之為shape,表示從最外層向量逐步到達最底層向量的降維解包過程。比如,一個一階的張量[1,2,3]的shape是(3,);
一個二階的張量[[1,2,3],[4,5,6]]的shape是(2,3);一個三階的張量[[[1],[2],[3]],[[4],[5],[6]]]的shape是(2,3,1)。
input_shape就是指輸入張量的shape。例如,input_dim=784,說明輸入是一個784維的向量,這相當於一個一階的張量,它的shape就是(784,)。因此,input_shape=(784,)。
input_dim = input_shape(input_dim,)
input_dim, input_length = input_shape(input_length, input_dim)
通俗來說,input_length就是輸入數據的長度,Input_dim就是數據的維度。比如一條數據內容是: “人人車” , one hot編碼后是 [[1 0] [1 0] [0 1]]表示 ,則 batch_size = 3, input_dim = 2.
參考:
https://blog.csdn.net/HHTNAN/article/details/82493952