如何从keras中的损失函数中获得中间结果?

How to get the intermediate results from loss function in keras?

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

loss = w1 * score1 + w2 * score2 + w3 * score3

我现在可以在model.fit的过程中看到最后的比分(输)了。 但我也希望看到 score1score2score3

如何查看 score1score2score3 结果?

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

谢谢。

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

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

有关详细信息,请参阅