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'))
我使用 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'))