嵌入层Keras后无法添加CNN层

时间:2019-08-07 10:55:30

标签: python-3.x keras deep-learning conv-neural-network

我有7个分类专项 我试图在嵌入图层后添加一个CNN图层

我的第一层是输入层 第二层是嵌入层 第三层,我想添加一个Conv2D层

我已经在Conv_2D中尝试了input_shape =(7,36,1),但是那没用

input2 = Input(shape=(7,))
embedding2 = Embedding(76474, 36)(input2)

# 76474 is the number of datapoints (rows)
# 36 is the output dim of embedding Layer

cnn1 = Conv2D(64, (3, 3), activation='relu')(embedding2)
flat2 = Flatten()(cnn1)

但是我遇到了这个错误

 Input 0 of layer conv2d is incompatible with the layer: expected 
 ndim=4, found ndim=3. Full shape received: [None, 7, 36]

1 个答案:

答案 0 :(得分:0)

嵌入层的输出是3D,即(samples, seq_length, features),其中features = 36是嵌入空间的维数,seq_length = 7是序列长度。 Conv2D图层需要一张图片,该图片通常表示为4D张量(samples, width, height, channels)

只有Conv1D层才有意义,因为它也需要3D形状的数据,通常是(samples, width, channels),然后您需要确定是要在序列长度上还是在整个序列上进行卷积要素维度。这是您需要尝试的事情,最终要确定嵌入输出中的“空间维度”