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

pycmVectorError报错:y_actu与y_pred长度不一致无法生成混淆矩阵

问题诱因

分批推理场景下出现真实标签和预测结果长度不匹配,常见原因如下:

  • DataLoader的drop_last参数设置为True:你的批次大小为200,总样本量21401无法被200整除,最后一个仅含1个样本的批次会被直接丢弃,导致预测结果少了对应样本
  • 测试集加载和真实标签生成逻辑不同源:如果y_actu是直接从完整原始数据集提取的,而DataLoader加载测试集时做了脏数据过滤、重复样本去重等操作,会导致实际参与推理的样本数少于原始总样本数
  • 推理逻辑存在隐式样本丢弃:模型推理过程中如果有文本长度超限截断、异常张量跳过等逻辑,没有同步把对应真实标签从y_actu中移除,也会导致二者长度差
  • 预测结果累计逻辑存在疏漏:预测函数中仅累计了符合特定条件的批次结果,漏加了部分批次的预测值

解决方法

可按以下顺序排查修复:

  • 首先检查DataLoader配置,将drop_last参数设置为False,确保最后一个不完整批次也参与推理
  • 校验数据集一致性:单独迭代一次测试集DataLoader统计总样本数,和y_actu的长度做对比,若不一致则统一两者的样本过滤逻辑,确保真实标签和参与推理的样本一一对应
  • 检查推理代码:如果模型内部有样本跳过逻辑,每跳过一个样本就同步删除y_actu中对应位置的标签,保证两者计数同步
  • 修正预测结果累计逻辑:确保每个批次的预测结果都被追加到y_pred列表中,不要添加额外的过滤条件,生成混淆矩阵前可加校验代码assert len(y_actu) == len(y_pred), f"标签长度不匹配:真实{len(y_actu)},预测{len(y_pred)}"提前定位问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 18:09:04