繁体   English   中英

ValueError:输入0与层conv2d_5不兼容:预期ndim = 4,找到的ndim = 2

[英]ValueError: Input 0 is incompatible with layer conv2d_5: expected ndim=4, found ndim=2

我正在尝试建立一个CNN网络,并想使用output_shape探测层的尺寸。 但这给了我一个错误,如下所示:

ValueError:输入0与层conv2d_5不兼容:预期ndim = 4,找到的ndim = 2

以下是我尝试执行的代码

from keras.layers import Activation

model = Sequential()
model.add(Convolution2D(32, 3, 3, activation='relu', input_shape=(1,28,28)))

print(model.output_shape)

您可以检查默认情况下是否在最后指定了通道数

from keras import backend as K
print(K.image_data_format()) # print current format

在我的系统上,这将打印“ channel_last”,这表示input_shape (28)的最后一个数字是通道数,而1是行数。 这也是Keras给出错误的原因,因为您无法将3 x 3卷积蒙版应用于只有1行的图像(默认填充设置为“有效”)。

您最有可能希望将input_shape设置为(28, 28, 1) input_shape (28, 28, 1)

另外,如果您希望内核为3 x 3内核,则应为

model.add(Convolution2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)))

您当前拥有的是一个卷积层,其内核大小为3 x 3 步幅为3。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM