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

Keras中Sequential模型训练时准确率超过1的原因排查

准确率超过1的异常原因及解决方法

准确率超出0-1区间的问题,主要和你使用的多GPU分布式策略以及指标与损失函数不匹配有关:

  • 分布式策略的指标汇总逻辑问题
    使用MirroredStrategy双GPU训练时,部分TensorFlow版本中,默认的accuracy指标会把每个GPU单独计算出的准确率直接相加,而非取平均值。比如两个GPU各自的准确率为0.6,汇总后就会得到1.2,自然超出正常范围。

  • 指标与损失函数不兼容
    你用的损失函数是SparseCategoricalCrossentropy,适用于整数型稀疏标签;但metrics里写的['accuracy']会默认调用CategoricalAccuracy——这个指标是为one-hot编码标签设计的。指标与标签格式不匹配,会导致计算逻辑混乱,最终出现准确率数值异常。

解决方法

将指标替换为适配稀疏标签的SparseCategoricalAccuracy即可,修改后的编译代码如下:

from tensorflow.keras.metrics import SparseCategoricalAccuracy

model.compile(
    optimizer=optimizers.Adam(),
    loss=losses.SparseCategoricalCrossentropy(from_logits=True),
    metrics=[SparseCategoricalAccuracy()]
)

这样既能适配分布式训练的指标汇总逻辑,又能匹配你的标签格式,准确率会回到0-1的正常区间。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 23:05:09