灰度图像输入Flatten层提示期望4维输入的报错如何解决?
错误根源
你定义的Flatten层要求单张输入图片的形状为(32, 32, 1),对应的批量输入整体维度为4维:(样本数, 32, 32, 1),但你当前的训练集x_train_grey仅为3维,缺少最后一维的灰度通道标识,因此触发维度不匹配报错。
解决方案
- 方案一:扩充数据集维度适配现有网络配置
用numpy为数据集补充最后一维的通道维度,执行代码:
运行后数据集形状会变为import numpy as np x_train_grey = np.expand_dims(x_train_grey, axis=-1)(73257, 32, 32, 1),和网络要求的输入维度完全匹配,可正常训练。 - 方案二:修改网络层配置适配现有数据集
直接调整Flatten层的输入形状,不需要修改数据集:
调整后网络会适配单张Flatten(input_shape=(32,32))(32,32)格式的灰度图输入,无需额外处理数据集。
内容的提问来源于stack exchange,提问作者mankojag
相关产品推荐
相关产品推荐

