使用 Keras 的自定义指标

数据挖掘 Python 喀拉斯
2022-02-12 03:13:02

如何在 Keras 中定义自定义性能指标?

我正在尝试使用它,但我看不到每个时期的指标值。

clf51.compile(optimizer=sgd51, loss='binary_crossentropy', metrics=["accuracy"])

clf51.fit(X_train, Y_train, batch_size=384, epochs=5, callbacks=[metrics], validation_split=0.30, verbose=2)

如你看到的:

Train on 139554 samples, validate on 59810 samples

Epoch 1/5 - 4s - loss: 0.3576 - acc: 0.9885 - val_loss: 0.0531 - val_acc: 0.9989

Epoch 2/5 - 3s - loss: 0.0261 - acc: 0.9987 - val_loss: 0.0135 - val_acc: 0.9987

难道我做错了什么?我想使用 f1s 提前停止。

1个回答

您使用的回调不是用于显示所需的指标,只是记录它们。例如,如果您想访问 F1 分数,您需要输入:metrics.f1s. 这很有用,比方说,如果你想制作一个关于 F1 分数在训练期间如何降低的图表。

然而,要使用EarlyStopping回调,f1-score 需要是一个指标,而不是像你拥有的回调!

您需要编写(或找到)一个通过 keras 的后端函数计算 F1 分数的函数。您可能想检查是否适合您。