Keras中的Embedding层

Embedding层一般用于自然语言中的降维,在abcdefg字符串中每个字母都可以用独热编码来表示,但是一旦字符串十分长,独热编码也就会十分长,因而使用Embedding来表示。不仅如此,Embedding也可以用来生成特征矩阵,但事实上也有降维的功能。

Embedding(n_in, n_out, input_length=1, W_regularizer=l2(1e-4))(inp)

Embedding的输入必须是连续的整数,不是独热编码
n_in表示输入种类的总数,即若要表示500个不同种类的猴子,那么n_in就是500.
n_out表示特征数量
input_length表示输入长度
W_regularizer是正则项,这里使l2

如果不使用embedding的话,直接输入独热向量,然后在后面加入若干fc层,效果是一样的。fc层中神经元的数量就是特征数量,由于输入是Onehot编码,因此可以共用一个dense。