You need to enable JavaScript to run this app. 120类犬种分类CNN预测结果验证与数组索引对应犬名错误排查
优惠活动
大模型
产品
解决方案
定价
更多

120类犬种分类CNN预测结果验证与数组索引对应犬名错误排查

犬种CNN预测异常问题排查

推理代码存在两处核心错误,是预测出错的直接原因

  • 索引提取逻辑错误:softmax层输出的是120个类别的概率值,并非硬编码的0/1。原代码用np.where(prediction == 1)匹配值为1的位置,无法得到正确的类别索引。正确写法为res = np.argmax(prediction)。
  • 预处理不一致:训练时对输入做了X = X / 255的归一化,将像素值从0-255缩放到0-1区间,但推理时的prepare函数返回的是原始像素值,未做归一化处理,输入分布与训练时差异过大,导致预测失准。需在prepare函数的返回语句前添加new_array = new_array / 255。

其他冗余/待确认问题

  • 推理代码中遍历CATEGORIES给class_num赋值的循环无实际作用,属于冗余代码。
  • 输出犬名时使用breed[10:]截取前缀的逻辑,依赖数据集文件夹命名为编号-犬名的格式,需确保所有犬类文件夹命名规则统一。
  • 预处理代码中使用了to_categorical方法,但未在导入部分引入该方法,脱离原有运行环境直接执行会报错,需补充from tensorflow.keras.utils import to_categorical到导入列表。

验证流程

修复上述两个核心错误后,先取训练集内的图片做推理测试,若能输出正确犬名,再用外部验证集测试。若训练集图片预测仍出错,再排查模型过拟合、训练数据标注错误等问题。

内容的提问来源于stack exchange,提问作者Doctor Garbage

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.09 05:06:07