【问题标题】:Monitor F1 Score (or a custom metric in general) in a keras callback在 keras 回调中监控 F1 分数(或一般的自定义指标)
【发布时间】:2019-05-14 03:13:01
【问题描述】:

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

我定义了一个函数,正如这里How to calculate F1 Macro in Keras? 所建议的那样。

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

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

'函数对象不可迭代'

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

【问题讨论】:

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


    【解决方案1】:

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

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

    Precision、recall 或 f1-score 不是可微分函数。因此,我们不能将其用作模型训练的损失函数。

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

    你可以使用hyperopttutorials来调整超参数

    【讨论】:

    • 我知道所使用的算法会尽量减少损失。但是最好改变学习率并根据 F1_Score 停止迭代,而不是损失。这就是我想做的事情,我想在回调中插入 F1_score
    猜你喜欢
    • 2018-10-12
    • 1970-01-01
    • 2019-02-06
    • 1970-01-01
    • 2021-09-09
    • 1970-01-01
    • 2018-05-14
    • 2018-12-10
    • 2019-04-01
    相关资源
    最近更新 更多