我正在尝试训练一个模型,训练后,我想查看 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中使用的指标,或者我在进行评估时可以定义更多指标吗?
例如,我想在训练期间监控准确性,然后在评估时监控召回率/精度等。
如果您不想监视精度,请记住,您不必将它们放在编译中。在使用
tf.keras.metrics.Precision()
获得预测后,您可以简单地使用 model.predict
。但如果您想使用 model.evaluate
,则需要将它们放在 model.compile
上。这是因为 model.evaluate
仅使用编译模型时提到的指标,这些指标是在您调用 model.compile
时启动的