首页 > 解决方案 > 如何在 keras 的自定义度量函数中设置断点

问题描述

我正在尝试在 keras 中编写自己的自定义指标函数,我想从一个测试函数开始,所以我使用 sklearn 实现了一个 f1_score 函数,接下来我需要根据我的评估指标自定义指标的计算,因此我想要在自定义指标函数中设置断点以进一步调查一些值并确保按我的预期计算,我试图简单地在函数内部设置一个断点,但是程序永远不会在断点处停止,但是,如果我在函数内部打印一些东西,它在每批之后(每次调用函数时)都会打印出来,这意味着函数正在按预期执行。这是我的测试回调函数

# metrics call backs
def f1_macro(y_true, y_pred):
    y_true_array = np.squeeze(np.asarray(y_true))
    y_pred_array = np.round(np.squeeze(np.asarray(y_pred)))

    f1 = f1_score(y_true_array, y_pred_array, "macro")
    return f1

这是我尝试过的但没有成功

tf.config.experimental_run_functions_eagerly(True)
tf.config.run_functions_eagerly(True)
tf.data.experimental.enable_debug_mode()

编译时将 run_eagrly 标志设置为 true

model.compile(..,run_eagerly=True)

有谁知道我该怎么做?提前致谢

标签: pythontensorflowkeras

解决方案


您应该使用breakpoint()内置方法。

breakpoint()

推荐阅读