【问题标题】:How do I get the weighted sum of multiple losses & accuracy (caffe)如何获得多重损失和准确率的加权总和(caffe)
【发布时间】:2017-03-29 14:35:12
【问题描述】:

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

  1. 我已经读到 caffe 平均多个损失和准确度(在这个问题之后How can I have multiple losses in a network in Caffe?),是否只有在至少共享一个层时才会出现这种情况?我打算创建一个合奏,但现在看来我只是有两个不同的网络。我打算平均损失和准确性,以便两个网络分支都有助于一个准确性。在训练中,我看到两个单独的损失和准确性。在测试新图像对时如何获得这种平均损失和准确度?

  2. 通过转发网络,是否有可能得到两个预测?如果有,怎么做?

【问题讨论】:

  • 任务的“平均”准确性是什么意思?如果任务不同,对应准确率的平均值是多少。
  • 你说得很好。发布后我意识到,我所拥有的只是两个独立的网络。我希望共同学习这两个任务。例如,在任务 2 预测某个类别标签的情况下,任务 1 的类别的预测应该更高。我不想在特征级别加入他们,而是在预测级别。

标签: neural-network deep-learning caffe


【解决方案1】:

使用 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"
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-10
    • 1970-01-01
    • 2017-07-16
    • 2017-12-17
    • 1970-01-01
    • 2017-04-16
    • 2017-03-21
    相关资源
    最近更新 更多