在keras回调中监视F1分数(或通常的自定义指标)

时间:2018-12-12 23:09:11

标签: python-3.x machine-learning neural-network deep-learning keras-2

Keras 2.0删除了F1分数,但我想监视它的价值。我正在使用顺序模型来训练神经网络。

我定义了一个功能,如此处How to calculate F1 Macro in Keras?所示。

仅当在model.compile中使用此函数时,该函数才能正常工作。通过这种方式,我可以在每个步骤中看到其价值。问题是我不想只看它的值,但我希望我的训练使用Keras的回调根据其值来表现不同。

如果我尝试在回调中插入自定义指标,则会收到此错误:

  

“函数对象不可迭代”

您知道如何定义一个函数,使其可以用作回调中的参数吗?

1 个答案:

答案 0 :(得分:0)

Keras的回调将使我们能够根据跟踪的指标在不同时期检索模型。这不会影响模型的训练过程。

您只能针对某些损失函数训练模型。例如,分类问题的交叉熵。给here

提供了喀拉拉邦容易获得的损失函数

精度,召回率或f1分数不是微分函数。因此,我们不能将其用作模型训练的损失函数。

也许是,如果您想调整超参数(例如学习率,班级权重)以提高f1分数,那么您可以这样做。

要调整超参数,可以使用hyperopttutorials