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

Keras实现LeNet:训练/验证准确率高但测试准确率极低问题排查

问题原因分析
  • 类别覆盖不完整+输出维度不匹配
    训练和验证集仅包含7类数字,模型训练时只学习了这7类的特征,输出层神经元数量应为7个。但测试集包含10类,其中3类是模型从未见过的;更关键的是,测试集的标签包含7、8、9(对应类别索引7、8、9),而模型只能输出0-6这7个类别的概率分布,sparse_categorical_crossentropy在计算时,标签值超出模型输出的类别索引范围,会直接导致损失异常升高,同时模型对未见过的3类样本完全无法正确分类,最终拉低整体测试准确率。

  • 数据预处理不一致
    检查tf.keras.utils.image_dataset_from_directory加载训练集和测试集时的参数是否完全一致:比如是否都设置了相同的image_size=(32,32)、color_mode="rgb",是否都添加了rescale=1./255这类归一化操作。如果测试集没有做和训练集相同的预处理(比如像素值未归一化),模型输入分布和训练时偏差极大,也会导致测试表现崩盘。

  • 测试集类别分布的影响
    即使忽略未见过的3类,测试集中这3类的样本占比如果较高(比如每类约10%,三类合计30%),加上模型对这部分样本全错,再加上对已见过的7类可能也有分类误差,最终准确率会被拉到极低水平,和你给出的0.0656吻合。

内容的提问来源于stack exchange,提问作者Dhruva Sundararajan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 19:40:27