【问题标题】:How to get the intermediate results from loss function in keras?如何从keras中的损失函数中获得中间结果?
【发布时间】:2021-02-26 18:06:20
【问题描述】:

我正在写一个自定义的损失函数,它看起来像这样:

损失 = w1 * score1 + w2 * score2 + w3 * score3

我现在可以看到model.fit过程中的最终得分(损失)。 但我也想看看score1score2score3

我怎样才能看到score1score2score3 结果?

附言。我知道我可以拆分代码并编写多个单独的度量函数。但它将运行相同的计算过程两次(一次用于损失,一次用于度量)。而score1score2score3的计算非常耗时。有没有更好的方法来完成这项任务?就像将一些参数从损失传递到度量?还是历史?

谢谢。

【问题讨论】:

    标签: python tensorflow keras metrics loss-function


    【解决方案1】:

    您可以将单独的损失函数及其权重 w1、w2、w3 传递给 model.compile。这样,每个单独的损失项将连同它们的总和一起打印到日志中。例如:

    model.compile(loss=[score1_fn, score2_fn, score3_fn], loss_weights=[w1, w2, w3], ...)
    

    详情请见How does keras handle multiple losses?

    【讨论】:

    • 谢谢。但是我的函数score1, score2, score3 共享相同的预处理代码。所以这样的话,预处理代码会被运行多次......直到花费更多的时间......
    猜你喜欢
    • 1970-01-01
    • 2019-11-04
    • 2020-01-12
    • 2018-04-03
    • 2019-01-20
    • 1970-01-01
    • 2019-02-04
    • 2020-08-18
    • 2017-10-06
    相关资源
    最近更新 更多