使用自定义指标在训练过程中评估和记录Tensorflow BootedTreesModel

dauxcl2d  于 2023-10-23  发布在  其他
关注(0)|答案(1)|浏览(124)

我想对tensorflow_decision_forests进行评估BootedTreesModel(Ranking task)沿着训练步骤和我的自定义验证指标。在另一个tf keras模型中,我可以使用自定义ValidationSet类作为Callback对象的一部分来完成这一点,然后将其传递到.fit中,但对于PrestentBoostedTreesModel,到目前为止我还不能。我发现对于这个Tree模型,我的自定义指标的评估只在最后发生一次。这似乎与代码的工作方式一致:

callbacks: Callbacks triggered during the training. The training runs in a
        single epoch, itself run in a single step. Therefore, callback logic can
        be called equivalently before/after the fit function.

从https://github.com/tensorflow/decision-forests/blob/main/tensorflow_decision_forests/keras/core.py#L1180。
如果任何人有一些变通方法来手动记录验证指标或对此有任何建议,那将非常感谢。谢谢!
我尝试的是:
我尝试过.make_inspector(),但据我所知,它是硬编码的,只记录ndcg(和损失,这是ndcg的负数)
我尝试多次训练模型,希望在每次训练结束时进行评估作为解决方案。然而,每次新的训练都会从头开始重新启动模型(日志显示它再次编译,即使我已经编译了它),这与其他keras模型不同,.fit从训练的模型继续。

erhoui1w

erhoui1w1#

目前TF-DF中没有内置的方法来记录训练期间的自定义指标。
TF-DF允许在模型构造器中使用try_resume_training选项恢复训练,请参阅此处的用法示例。这可能是解决问题的一种方法。请记住(取决于数据集的大小),这可能会很慢,因为数据集将多次读入内存。

  • 完全披露:我是Tensorflow决策森林的作者之一。

相关问题