Keras模型中数据维度报错

本文探讨了在使用Keras Sequential构建神经网络时遇到的维度不匹配错误,着重于测试数据预处理和解决测试集中1维数据与全连接层预期的784维输入不符的问题。通过reshape操作,成功调整了输入维度并修复了预测问题。
摘要由CSDN通过智能技术生成

ValueError: Input 0 of layer dense is incompatible with the layer: expected axis -1 of input shape

使用深度学习Keras的Sequential框架搭建神经网路模型,关于数据维度报错问题

ValueError: Input 0 of layer dense is incompatible with the layer: expected axis -1 of input shape to have value 784 but received input with shape (None, 28)

预测图片类型时报错,主要原因是预测数据的维度与输入层的维度不一致,报错代码处,预测测试集中第一个数据

print(np.argmax(model.predict(test_images_scale[0])))

原因分析
从报错语句中可以看出,错误在于第0层全连接层输入与该层不兼容。也就是数据维度的错误,测试集作为验证模型和评估模型均没有问题,说明测试集的维度作为输入没有问题,下面我们输出测试集数据维度及预测数据的维度

print('test.shape:'+str(test_images_scale.shape))
print('test[0].shape:'+str(test_images_scale[0].shape))

输出结果

test.shape:(10000, 28, 28)
test[0].shape:(28, 28)

从结果中可以看出,预测测试集中某个数据这样的维度有误,可接受3维数据,但是输入的1维数据,修改如下

tf.reshape(test_images_scale[0],(1,28,28))

这样既可正确预测。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值