什么是SetLossWeights?

时间:2017-03-29 13:26:37

标签: caffe

我正在阅读caffe的Layer源代码,但我有以下问题:

  1. Layer::SetLossWeights函数在做什么?我知道在Layer类中,有一个loss_变量,其中包含:
  2.   

    指示每个顶部斑点是否具有非零权重的向量   在目标函数中。

    他们有关系吗?

    1. 在caffe.proto文件中,LayerParameter loss_weight仅适用于丢失图层,这是正确的吗?
    2. 非常感谢。

1 个答案:

答案 0 :(得分:1)

  1. 减重的目的是将多层损失结合起来。因此Layer::SetLossWeights将损失权重分配给loss_变量和diff blobforward用于计算总损失。
  2. 由于具有后缀损失的默认图层具有损失权重1而其他图层具有0.但是任何能够反向传播的图层都可以被赋予非零损失权。
  3. 有关详细信息,请参阅caffe loss tutorial

    编辑:

    Loss weight只有在输入到另一个执行backprop的层时才会改变,而这个层不是作者想要的。正如他们在pull request中对Accuracy layer所说的那样,它会破裂。 diffloss layer的目的是存储loss weight不存储渐变。有关详细信息,请参阅caffe-users group中的此讨论。