Keras:如何合并密集层和嵌入层

Keras : How to merge a dense layer and an embedding layer

我使用 Keras 并尝试将两个不同的层连接成一个向量(向量的第一个值是第一层的值,另一部分是第二层的值)。 其中一层是 Dense 层,另一层是 Embedding 层。

我知道如何合并两个嵌入层或两个密集层,但我不知道如何合并一个嵌入层和一个密集层(维度问题)。

一个简单的例子是这样的:

L_branch = Sequential()
L_branch.add(Dense(10, input_shape =  (4,) , activation = 'relu'))
L_branch.add(BatchNormalization())

R_branch = Sequential()
R_branch.add(Embedding(1000, 64, input_length=5))

final_branch.add(Merge([L_branch, R_branch], mode = 'concat'))

但这行不通,因为您无法合并具有不同维度的图层。

PS : 抱歉,英语不是我的母语,希望您能理解我的问题。

此致。

使用Flatten层。

L_branch = Sequential()
L_branch.add(Dense(10, input_shape =  (4,) , activation = 'relu'))
L_branch.add(BatchNormalization())

R_branch = Sequential()
R_branch.add(Embedding(1000, 64, input_length=5))
R_branch.add(Flatten()) # <--

final_branch = Sequential() # <--
final_branch.add(Merge([L_branch, R_branch], mode = 'concat'))