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并不是维度,而是id的最大数字
例如在这个图片中的最大数字id是49999,这个并不是按照顺序排的。
所以在这个参数中,并没有输入的矩阵行数。但是却输入了矩阵的列数,也就是输入样本的长度,也就是input_length。
output_dim是输出的维度,但是它是相当于生维度,相当于做了一次卷积变换
图中没有显示出升高维度的感觉,只是展示了一个卷积
那么比如这个程序就是生维度,最后相当于加了一个2的output_dim
from keras.models import Sequential
from keras.layers import Flatten, Dense, Embedding
import numpy as np
model = Sequential()
model.add(Embedding(3, 2, input_length=7))
model.compile('rmsprop', 'mse')
data = np.array([[0,1,2,1,1,0,1],[0,1,2,1,1,0,1]]
model.predict(data))
#输出
[[[-0.00732628 -0.02913231]
[ 0.00573028 0.0329752 ]
[-0.0401206 -0.01729034]
[ 0.00573028 0.0329752 ]
[ 0.00573028 0.0329752 ]
[-0.00732628 -0.02913231]
[ 0.00573028 0.0329752 ]]
[[-0.00732628 -0.02913231]
[ 0.00573028 0.0329752 ]
[-0.0401206 -0.01729034]
[ 0.00573028 0.0329752 ]
[ 0.00573028 0.0329752 ]
[-0.00732628 -0.02913231]
[ 0.00573028 0.0329752 ]]]