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

Ed *_*Nio 5 merge embedding layer theano keras

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

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

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

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'))
Run Code Online (Sandbox Code Playgroud)

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

PS:对不起,英语不是我的母语,我希望你能理解我的问题。

此致。

Ale*_*hev 8

使用展层。

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'))
Run Code Online (Sandbox Code Playgroud)

  • 对于这一行 - final_branch.add(Merge([L_branch, R_branch], mode = 'concat')) Keras 2.0.1 抛出此警告: UserWarning:不推荐使用`Merge` 层,并将在 08/2017 之后删除。使用来自`keras.layers.merge`的层,例如`add`、`concatenate`等。 (3认同)