当建立CNN时,我收到了来自Keras的抱怨,这对我来说没有意义.

use*_*712 14 python neural-network keras

我的输入形状应该是100x100.它代表一句话.每个单词都是100维的向量,句子中最多有100个单词.

我向CNN提供八个句子.我不确定这是否意味着我的输入形状应该是100x100x8.

然后是以下几行

Convolution2D(10, 3, 3, border_mode='same',
                       input_shape=(100, 100))
Run Code Online (Sandbox Code Playgroud)

抱怨:

输入0与图层卷积2d_1不兼容:预期ndim = 4,发现ndim = 3

这对我来说没有意义,因为我的输入维度是2.我可以通过将input_shape更改为(100,100,8)来完成它.但是"预期的ndim = 4"位对我来说没有意义.

我也看不出为什么带有10个滤波器的3x3卷积层不接受100x100的输入.

即使我通过抱怨"预期的ndim = 4".我的激活层遇到了问题.有抱怨:

无法将softmax应用于非2D或3D的张量.这里,ndim = 4

任何人都可以解释这里发生了什么以及如何解决它?非常感谢.

Pri*_*moz 11

我有同样的问题,我解决了channelinput_shape参数添加一个维度.

我建议以下解决方案:

Convolution2D(10, 3, 3, border_mode='same', input_shape=(100, 100, 1))
Run Code Online (Sandbox Code Playgroud)


don*_*loo 9

2D卷积层的缺失维度是"通道"维度.

对于图像数据,灰度图像的通道尺寸为1,彩色图像的通道尺寸为3.

在您的情况下,为了确保Keras不会抱怨,您可以使用1个通道的2D卷积,或100个通道的1D卷积.

参考:http://keras.io/layers/convolutional/#convolution2d