keras loss 是否必须每批输出一个标量或整个批次输出一个标量?

Do keras loss have to output one scalar per batch or one scalar for the whole batch ?

我在 中读到,keras 自定义损失函数必须 return 每个批次项目一个标量。

我写了一个损失函数,输出整个批次的标量,网络似乎收敛了。但是,我找不到任何关于此的文档或代码中究竟发生了什么。有没有在某处进行广播?如果我添加样本权重会怎样?有人知道魔法发生的地方吗?

谢谢!

通常,您通常可以使用标量代替向量,这将被解释为用该值填充的向量(例如 1 被解释为 1,1,1,1 )。 所以如果你的一个批次的损失函数的结果是 x,它被解释为你在说批次中每个项目的损失是 x。