实现对批量大小不变的自定义损失函数

数据挖掘 喀拉斯 张量流 损失函数
2022-03-07 15:52:08

在实现自定义损失函数时如何使其对batch size. 例如,假设dice loss正在实施。的公式dice loss是:

c1DSCcc:Classes,DSCc:Dice score of class c

这个公式没有说明如何处理batch size. 值得注意的是,根据这个公式,如果增加 ,则 的值lossbatch size增加。显而易见的直觉是loss使用batch size. 在这种情况下,我有两个问题。

  1. loss规范化使用在理论上是否有效batch size
  2. 如何正常化?
  • 例如,在图像的情况下tensor,手头是4D/可以为每个图像dice score每个类计算得到如下所示的张量其中loss2Dn没有。类和mbatch size

[l1,1l1,nlm,1lm,n]
      现在聚合loss可以计算为:
j=1n1mi=1mli,j=1mj=1ni=1mli,j

  • 或者,我们可以从一开始就忽略并在 a 中batch size生成每个类loss1D tensor
    [l1ln]

      因此,归一化的聚合loss将是:

1mk=1nlk

这两种方法有什么根本区别吗?哪一个是正确的(如果有的话)?

0个回答
没有发现任何回复~