我需要在 model.compile 中定义指标以便以后使用它们吗?

问题描述 投票:0回答:1

我正在尝试训练一个模型,训练后,我想查看 TP TN FP FN、召回率、精度和灵敏度。

问题1:当我像这样编译模型时,是否需要定义所有这些指标?

metrics = [CategoricalAccuracy(),Precision(),Recall(),TruePositives(),TrueNegatives(),FalseNegatives(),FalsePositives(),SensitivityAtSpecificity(0.5)]
model.compile(optimizer=Adam(learning_rate = 0.004), loss=CategoricalCrossentropy(from_logits = True), metrics=metrics)

我想做的是在模型训练完成后,我想用这些指标对其进行评估,看看它在测试集上的表现如何。

问题2:如果我运行model.evaluate,是否会使用model.compile中使用的指标,或者我在进行评估时可以定义更多指标吗?

例如,我想在训练期间监控准确性,然后在评估时监控召回率/精度等。

python tensorflow deep-learning
1个回答
2
投票

如果您不想监视精度,请记住,您不必将它们放在编译中。在使用

tf.keras.metrics.Precision()
获得预测后,您可以简单地使用
model.predict
。但如果您想使用
model.evaluate
,则需要将它们放在
model.compile
上。这是因为
model.evaluate
仅使用编译模型时提到的指标,这些指标是在您调用
model.compile

时启动的
© www.soinside.com 2019 - 2024. All rights reserved.