Keras {ValueError}:输入0与图层conv2d_2

时间:2017-07-26 14:09:32

标签: python keras

我是keras的新手,我正在尝试对文档进行卷积。每个文档由一个矩阵表示,其形状为[40 * 4000](每个文档有40个句子,每个句子有20个单词,因此单词嵌入维度为200)。

我想用3个单词进行卷积,这是我的代码(不完全一样,但你可以在你的机器上运行这个代码):

import keras
from keras.layers import Input, Embedding, Dense, merge, Conv2D
from keras.layers.core import Reshape

tokens_input = Input(name='input', shape=(40, 20), dtype='int32')

x = Embedding(25000 + 1, 200, name="embedding")(tokens_input)
x = Reshape((40, -1), 
             name="reshape")(x)


cur_conv = Conv2D(20, kernel_size=(3*200, 1),
                 strides=(200, 1), padding='valid', activation='relu')(x)

但是我收到此错误消息:输入0与图层conv2d_1不兼容:预期ndim = 4,发现ndim = 3

1 个答案:

答案 0 :(得分:0)

Conv2D图层的输入应该具有形状(样本,通道,宽度,高度),嵌入的输出是3D,而不是4D。您应该定义如何将嵌入输出解释为图像,也许您应该添加通道尺寸并将其设置为1.