我需要在model.compile中定义度量标准以便以后使用吗



我正在尝试训练一个模型,训练后,我想看看TP TN FP FN、召回率、精度和灵敏度。当我像这样编译模型时,我需要定义所有这些指标吗?

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)

我想做的是,在模型经过训练后,我想用这些指标来评估它,看看它在测试集上的表现如何。如果我运行model.evaluate,是否将使用model.compile中使用的指标,或者在进行评估时可以定义更多指标?例如,我想在训练期间监控准确性,然后在评估时监控回忆/准确性等等。

如果您不想监视Precision,Recall,您不必将它们编译。在使用model.predict获得预测后,您可以简单地使用tf.keras.metrics.Precision()。但如果你想使用model.evaluate,你需要把它们放在model.compile上。这是因为model.evaluate只使用编译模型时提到的度量,这些度量是在调用model.compile时启动的

最新更新