You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CNN训练时model.fit的validation dataset仅首次生效如何修复

问题修复方案

问题根源

你在model.fit方法中手动指定了validation_steps=50,而你的验证集总样本仅127条,默认训练batch size为32的情况下,整份验证集只需要4步就能完成全部迭代。第一轮验证时已经将所有验证数据消耗完毕,后续轮次没有剩余的验证数据可用于评估,因此不会输出正常的验证结果。

修复方法

  • 直接删除validation_steps=50参数即可。当validation_data传入的是numpy数组而非迭代器类型的数据集时,Keras会自动计算需要的验证步数,无需手动指定,修改后的训练代码如下:
history = model.fit(train_image, train_label,
                    epochs=100,
                    validation_data = (val_image, val_label),
                    verbose=2)
  • 如果你需要保留该参数,可将数值调整为小于等于验证集总步数的合理值,例如validation_steps=4,但更推荐直接删除该参数避免手动计算出错。

额外优化建议

  • 当前设置的学习率lr=0.001对于小样本数据集来说偏高,可考虑调低到1e-4,或者替换为Adam优化器,收敛稳定性会更好。
  • 输入图像尺寸设置为255不是2的幂次,适配卷积、池化层的计算效率不如256,可在数据预处理阶段将图像统一resize到256*256,提升训练效率。

内容的提问来源于stack exchange,提问作者엄태선

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 17:48:02