我有以下网络:
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。
答案 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'))