在 keras 回调中监控 F1 分数(或一般的自定义指标)

spy*_*y95 5 machine-learning neural-network python-3.x deep-learning keras-2

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

我定义了一个函数,正如这里的建议如何在 Keras 中计算 F1 宏?.

只有在model.compile 中使用该函数才能正常工作。通过这种方式,我在每一步都看到了它的价值。问题是我不想只看到它的价值,但我希望我的训练根据它的价值表现不同,使用 Keras 的回调。

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

'函数对象不可迭代'

你知道如何定义一个函数,以便它可以在回调中用作参数吗?

Ven*_*lam 0

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

您只能针对某些损失函数来训练模型。例如,分类问题的交叉熵。这里给出了 keras 中现成的损失函数

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

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

要调整超参数,您可以使用hyperopt教程