我在编程神经网络方面相对较新,之前跟随了一些教程学习后,决定尝试自己编程神经网络。我一直在尝试编写一个基本的神经网络,以便了解它的工作原理,但它不断给我报错。如果有人能帮我解决这个问题,我将不胜感激。
这是我的代码:
这是我收到的错误消息:
str(x.shape.as_list()))ValueError: Input 0 of layer conv2d is incompatible with the layer: expected ndim=4, found ndim=2. Full shape received: [None, 784]
提前感谢!
回答:
错误的原因是Conv2D
期望输入形状为4维,即[batch_size, height, width, channels]。你可以做一件事,即重塑你的输入到模型中。
X = X.reshape(-1, 28, 28, 1) # 如果是单通道(灰度)
# 或者
X = X.reshape(-1, 28, 28, 3) # 如果是RGB
# 然后相应地更改你的`Conv2D`层的输入形状为
model = Sequential()
model.add(Conv2D(8,(5, 5),padding="same",activation='relu',input_shape=(28,28,1)))
# 或者
model = Sequential()
model.add(Conv2D(8,(5, 5),padding="same",activation='relu',input_shape=(28,28,3)))