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

Keras多分类任务中AUC指标报错问题排查

多分类图像分类模型引入AUC指标训练失败的问题解决

核心错误点

  • from_logits参数矛盾:模型最后一层使用了softmax激活(输出概率分布),但你在损失函数SparseCategoricalCrossentropy和AUC指标中都设置了from_logits=True,这会导致指标错误解析输入张量的形状,引发维度不匹配报错。
  • 多分类AUC配置缺失:多分类场景下未指定num_classes参数,Keras的AUC默认按二分类逻辑处理,无法适配多分类的输出张量。

修正方案

方案1:保留softmax激活,修正from_logits参数

修改模型编译代码,将损失函数和AUC的from_logits设为False,同时给AUC指定num_classes:

model.compile(
  optimizer='adam',
  loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False),
  metrics=['accuracy',
           keras.metrics.AUC(curve="ROC",
                             multi_label=False,
                             num_classes=num_classes,
                             from_logits=False)]
)

方案2:移除softmax,使用logits输出

如果想保持from_logits=True,需要去掉模型最后一层的softmax激活,直接输出logits:

# 修改模型最后一层
model = tf.keras.Sequential([
  tf.keras.layers.Rescaling(1./255),
  tf.keras.layers.Conv2D(32, 3, activation='relu'),
  tf.keras.layers.MaxPooling2D(),
  tf.keras.layers.Dropout(dropout_rate),
  tf.keras.layers.Conv2D(32, 3, activation='relu'),
  tf.keras.layers.MaxPooling2D(),
  tf.keras.layers.Dropout(dropout_rate),
  tf.keras.layers.Conv2D(32, 3, activation='relu'),
  tf.keras.layers.MaxPooling2D(),
  tf.keras.layers.Dropout(dropout_rate),
  tf.keras.layers.Flatten(),
  tf.keras.layers.Dense(num_classes)  # 移除activation="softmax"
])

# 编译时保持from_logits=True,同时指定num_classes
model.compile(
  optimizer='adam',
  loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
  metrics=['accuracy',
           keras.metrics.AUC(curve="ROC",
                             multi_label=False,
                             num_classes=num_classes,
                             from_logits=True)]
)

错误原因说明

报错中的data.shape = [32]和segment_ids.shape = [128]是因为from_logits=True时,AUC会期望输入是未经过激活的logits张量,但实际输入是softmax后的概率张量,两者维度处理逻辑冲突,导致张量形状不匹配。调整参数后,指标能正确识别输入的多分类概率/logits张量,完成AUC计算。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 21:23:21