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

CNN未成年人识别训练准确率正常但未成年人样本预测成功率为0求助

问题排查及解决方案

1. 归一化尺度不一致(核心错误)

  • 训练阶段:像素值归一化规则为 png = png/250.0
  • 推理阶段:加载数据集内已做过归一化的样本后,又重复执行了 image = image/255.0,相当于像素值被压缩至训练阶段数值分布的1/255,完全偏离模型学习的特征区间,导致模型无法正常识别。
    修复方案:推理阶段加载数据集内的样本时,不要重复做归一化;加载外部测试图片时,统一使用和训练阶段一致的归一化规则(除以250,而非255)。

2. 预测输入维度缺失

遍历young数据集做批量测试时,直接传入shape为(48,48,1)的png给model.predict(),缺少模型要求的batch维度,导致预测结果异常。
修复方案:预测前给样本增加batch维度,参考代码:

score += int(model.predict(np.expand_dims(png, axis=0))[0][0] > 0.5)

3. 分类阈值处理逻辑错误

Sigmoid层输出的是0-1之间的概率值,直接用int()转换的话,只要概率小于1都会被转为0,相当于所有概率在0.5-1区间的未成年人样本都会被错误判定为0。
修复方案:添加0.5分类阈值判断,概率大于等于0.5判定为未成年人(标签1),否则判定为成年人(标签0)。

4. 可选优化:模型结构冗余

第二层卷积层之后多添加了一组无前置卷积的BatchNormalization和Activation('relu')层,属于冗余结构,虽然不是本次问题的核心原因,但可以删除避免不必要的计算。

内容的提问来源于stack exchange,提问作者Ulto 4

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 18:15:06