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

为何TensorFlow模型预测时会报告错误的高置信度结果?

置信度超100%问题排查结果

核心原因

你当前模型最后一层使用的是无激活函数的全连接层,输出值为原始logits:

outputs = tf.keras.layers.Dense(3)(x)

logits本身的取值范围是 (-∞, +∞),没有上下限,仅用来反映不同类别的优先级,不具备0~1范围的概率属性,直接将其作为置信度使用自然会出现数值超过1(即超过100%)的情况,同时也无法匹配预测结果的真实可信程度,会出现预测错误时数值仍然很高的问题。

修复方案

有两种可行的修复方式,二选一即可:

  • 修改模型结构,在最后一层添加softmax激活,直接输出归一化后的类别概率
    调整最后一层代码为:
    outputs = tf.keras.layers.Dense(3, activation='softmax')(x)
    调整后模型输出值为每个类别对应0~1之间的概率,所有类别概率总和为1,乘以100即可得到常规的百分比置信度。
  • 不改动现有模型结构,推理阶段对输出的logits做softmax转换
    拿到模型输出的logits后额外加一步计算:
    confidences = tf.nn.softmax(outputs).numpy()
    计算得到的confidences即为0~1范围的归一化置信度。

注意:如果你的模型训练时用的是from_logits=True的交叉熵损失函数,推荐选择第二种方案,不需要重新训练模型即可得到正确的置信度。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 08:36:00