Keras ValueError:输入0与层conv2d_1不兼容:预期的ndim = 4,找到的ndim = 5
conv-neural-network
deep-learning
keras
python
11
0

我已经检查了所有解决方案,但仍然遇到相同的错误。我的训练图像形状是(26721, 32, 32, 1) ,我相信它是4维的,但是我不知道为什么错误显示它是5维的。

 model = Sequential()

 model.add(Convolution2D(16, 5, 5, border_mode='same', input_shape= input_shape ))

这就是我定义model.fit_generator

model.fit_generator(train_dataset, train_labels, nb_epoch=epochs, verbose=1,validation_data=(valid_dataset, valid_labels), nb_val_samples=valid_dataset.shape[0],callbacks=model_callbacks)
参考资料:
Stack Overflow
收藏
评论
共 2 个回答
高赞 时间 活跃

问题是input_shape

它实际上应该仅包含3个维度。内部keras将添加批次尺寸使其成为4。

由于您可能使用input_shape具有4个维度的input_shape (包括批处理),因此keras将第5个维度加上。

您应该使用input_shape=(32,32,1)

收藏
评论

问题出在input_shape 。尝试添加额外的尺寸/通道,以使keras知道您正在处理灰度图像,即-> 1

input_shape= (56,56,1) 。也许,如果您使用的是普通的深度学习模型,那么它不会引起任何问题,但对于Convnet来说,它确实可以。

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号