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

EfficientNet迁移学习模型推理时所有图片预测结果一致求助

问题排查与修复方案

以下是导致推理阶段所有图片预测结果一致的核心问题及修复方法:

  • 推理阶段概率计算逻辑错误
    你的模型输出是CrossEntropyLoss对应的logits(未经过Softmax的原始输出),但代码中直接对logits执行torch.exp(output.data),这会引发数值异常:当某类的logits远大于其他类时,exp后会占据绝对主导,导致所有样本都被预测为同一类。
    错误代码片段:

    predictions = torch.exp(output.data)
    topk, topclass = torch.max(predictions, 1)
    

    修正方案(二选一即可):

    # 方案1:直接用logits取最大类(更高效,因为Softmax不改变最大类的位置)
    _, topclass = torch.max(output, 1)
    # 方案2:先做Softmax再计算概率和预测类
    sm = nn.Softmax(dim=1)
    predictions = sm(output)
    topk, topclass = torch.max(predictions, 1)
    
  • 模型分类头的冗余替换
    在EffNet类初始化时,你已经为EfficientNet指定了num_classes=self.numClasses,但后续又重复替换了分类头为相同维度的Linear层,虽然这不会直接导致推理异常,但属于冗余操作,容易引发后续维护问题,建议删除重复的分类头替换代码。

  • 训练阶段模型保存逻辑冲突
    训练中同时根据训练准确率和训练损失保存模型,这会导致最终保存的权重可能不是验证集上的最优模型,甚至会覆盖掉性能更好的权重。建议统一使用验证集的指标(如验证准确率最高或验证损失最低)来保存最优模型。

  • 数据预处理一致性问题
    务必检查推理阶段的图像预处理流程是否和训练/验证阶段完全一致,包括图像尺寸、归一化均值/方差、是否使用了正确的裁剪/缩放方式等。预处理不一致会导致模型输入分布偏离训练时的分布,进而引发异常预测。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 12:45:17