我已经在同一图像的两个不同模态上训练了一个网络。我将数据一起传递到一层,但之后,它几乎是两个并行的网络,它们不共享一个层,两个任务有不同的标签集,因此我有两个不同的损耗和精度层。
我已经读过caffe平均多次损失和准确性(遵循这个问题How can I have multiple losses in a network in Caffe?),只有当至少共享一个层时才是这种情况吗?我打算创建一个集合,但现在看起来我只是有两个不同的网络。我打算平均损失&准确性,以便两个网络分支将有助于一个准确性。在训练中我看到两个单独的损失&准确性。如何获得平均损失&测试新图像对时的准确度?
通过转发网络,是否可以获得两个预测?如果是这样,怎么样?
答案 0 :(得分:2)
使用caffe-parameter 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"
}