如何在Keras中扩展嵌入层的输出

时间:2018-09-13 17:20:17

标签: tensorflow keras keras-layer

我有以下网络:

model = Sequential()
model.add(Embedding(400000, 100, weights=[emb], input_length=12, trainable=False))

model.add(Conv2D(256,(2,2),activation='relu'))

嵌入层的输出具有形状(batchSize,12,100)。 conv2D图层需要输入形状(batchSize,filter,12、100),并且出现以下错误:

 Input 0 is incompatible with layer conv2d_1: expected ndim=4, found ndim=3

那么,如何扩展嵌入层的输出以使其适合Conv2D层?

我正在使用Tensorflow作为后端的Keras。

2 个答案:

答案 0 :(得分:1)

添加重塑图层应该是https://keras.io/layers/core/#reshape的方法 根据具体情况,Conv1D虽然可以正常工作。

答案 1 :(得分:0)

我设法用下面的代码添加了另一个维度:

model = Sequential()
model.add(Embedding(400000, 100, weights=[emb], input_length=12, trainable=False))
model.add(Lambda(lambda x: expand_dims(x, 3)))
model.add(Conv2D(256,(2,2),activation='relu'))