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

Keras模型指标相关疑问:编译阶段是否需预定义评估指标?

关于模型训练与评估阶段指标设置的问题解答

问题1:是否需要在编译阶段定义所有评估所需的指标?

不需要。编译阶段指定的metrics主要用于训练过程中实时监控模型表现,如果你只需要在训练完成后用测试集评估TP、TN、FP、FN等指标,完全没必要在编译阶段就把这些指标都加上。训练时只需要定义你关心的监控指标(比如仅CategoricalAccuracy)即可,避免训练过程中额外计算不必要的指标,节省计算资源。

问题2:model.evaluate()是否支持额外指定评估指标?

完全支持。model.evaluate()默认使用编译阶段定义的指标,但你可以通过调用时的metrics参数,额外指定任意需要的指标,实现“训练时仅监控accuracy,评估时再计算Recall、Precision等指标”的需求。

代码示例

训练阶段(仅监控准确率)

from tensorflow.keras.metrics import CategoricalAccuracy
from tensorflow.keras.optimizers import Adam
from tensorflow.keras.losses import CategoricalCrossentropy

# 编译模型,仅指定训练时要监控的准确率
model.compile(
    optimizer=Adam(learning_rate=0.004),
    loss=CategoricalCrossentropy(from_logits=True),
    metrics=[CategoricalAccuracy(name="train_accuracy")]
)

# 执行训练
model.fit(train_dataset, epochs=10, validation_data=val_dataset)

评估阶段(按需指定所有需要的指标)

from tensorflow.keras.metrics import (
    Precision, Recall, TruePositives, TrueNegatives,
    FalseNegatives, FalsePositives, SensitivityAtSpecificity
)

# 定义测试时需要计算的所有指标
eval_metrics = [
    CategoricalAccuracy(name="test_accuracy"),
    Precision(name="precision"),
    Recall(name="recall"),
    TruePositives(name="tp"),
    TrueNegatives(name="tn"),
    FalseNegatives(name="fn"),
    FalsePositives(name="fp"),
    SensitivityAtSpecificity(0.5, name="sensitivity_at_0.5_spec")
]

# 在测试集上评估,使用自定义的评估指标
test_loss, *test_metrics = model.evaluate(test_dataset, metrics=eval_metrics)

# 打印结果
print(f"测试集损失: {test_loss:.4f}")
print(f"测试集准确率: {test_metrics[0]:.4f}")
print(f"精确率: {test_metrics[1]:.4f}")
print(f"召回率: {test_metrics[2]:.4f}")
print(f"真阳性(TP): {test_metrics[3]}")
print(f"真阴性(TN): {test_metrics[4]}")
print(f"假阴性(FN): {test_metrics[5]}")
print(f"假阳性(FP): {test_metrics[6]}")
print(f"特异性0.5时的敏感度: {test_metrics[7]:.4f}")

额外说明

  • 对于多分类任务,部分指标(如Precision、Recall)可以通过设置class_id参数,单独计算某一类的指标值,根据你的任务需求调整即可。
  • 所有指标对象建议指定name参数,方便后续识别结果对应的指标。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 20:54:17