You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TensorFlow自定义回调生成的val_f1_after_epoch无法被ModelCheckpoint监测怎么办

问题根源

你遇到这个警告的核心原因是回调的执行顺序错误。
TensorFlow Keras的回调是按照你传入model.fit()时callbacks参数里的列表顺序依次执行的。你现在的ModelCheckpoint回调执行顺序在自定义的Metrics回调之前:

  • ModelCheckpoint先运行,检查logs里有没有val_f1_after_epoch,此时你的自定义指标还没计算,也没写入logs,所以触发找不到指标的警告,跳过保存
  • 之后才执行Metrics回调的on_epoch_end方法,把自定义指标写入logs,所以最终history.history里能看到这个指标,但保存阶段已经错过了

解决方案

调整callbacks列表的顺序,把自定义的Metrics回调放在ModelCheckpoint回调之前即可:

# 错误的顺序示例(你之前大概率是这么写的)
# model.fit(..., callbacks=[checkpoint_cb, m4])

# 正确的顺序
model.fit(
    # 其余训练参数保持不变
    callbacks=[m4, checkpoint_cb]
)

你已经设置的checkpoint_cb._supports_tf_logs = False是正确配置,不需要修改,这个配置的作用是让Checkpoint可以读取普通Python数值类型的指标,而不是仅读取Tensor类型的内置指标。

内容的提问来源于stack exchange,提问作者learner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 15:36:03