Python搭建图像机器学习模型首个epoch结束报reshape错误如何解决
错误原因
- 核心问题是训练数据生成器、验证数据生成器的输出尺寸与模型输入要求不统一:你的模型输入层指定
input_shape=(128,128,3),训练集target_size设为(128,128)符合要求,但验证集的target_size错误设置为了(64,64)。 - 报错逻辑:首个epoch的训练阶段用128128的输入可以正常运行,进入验证阶段后,模型收到6464的输入,经过三层卷积池化后输出的特征图总元素数和Flatten层预期的固定维度不匹配,触发reshape参数错误。
解决方案
直接修改验证数据生成器的target_size,和训练集、模型输入尺寸保持一致即可,修改后的代码如下:
validation_data_gen = validation_generator.flow_from_dataframe( dataframe=df, #directory='', x_col="images", y_col="label", class_mode="binary", batch_size=64, target_size=(128,128))
如果你确实需要输入64*64尺寸的图像训练,同步把模型输入层的input_shape改为(64,64,3),同时把训练集的target_size也改为(64,64)即可,只要保证三者输入尺寸完全统一就不会触发该错误。
内容的提问来源于stack exchange,提问作者xirtoth
相关产品推荐
相关产品推荐

