如何获得多重损失和准确性的加权总和(caffe)

How do I get the weighted sum of multiple losses & accuracy (caffe)

我已经在同一图像的两个不同模态上训练了一个网络。我在一层中将数据一起传递,但在那之后,它几乎是两个并行的网络,它们不共享一个层,并且这两个任务具有不同的标签集,因此我有两个不同的损失和准确性层。

  1. 我看过caffe平均multiple losses和accuracy(跟这个问题),是不是只有至少共享一层才这样?我打算创建一个合奏,但现在看来我只有两个不同的网络。我打算平均损失和准确性,以便两个网络分支都有助于一个准确性。在训练中,我看到两个独立的损失和准确性。在测试新图像对时如何获得平均损失和准确度?

  2. 通过转发网络,是不是可以得到两个预测呢?如果可以,怎么做?

使用 caffe 参数 loss_weight 可以在一个网络中使用多个损失。例如,对于权重为 0.5 的损失层之一,您可以使用以下内容。

...
layer{
  name: "loss_a"
  type: "SigmoidCrossEntropyLoss"
  bottom: "fc8_a"
  bottom: "attributes_a"
  top : "loss_a"
  loss_weight : 0.5
 }

 layer{
  name: "loss_b"
  type: "SigmoidCrossEntropyLoss"
  bottom: "fc8_b"
  bottom: "attributes_b"
  top : "loss_b"
}