我对 Caffe 损失层中的后向函数有疑问。我在以下位置看到了欧几里得损失层的实现: https ://github.com/BVLC/caffe/blob/master/examples/pycaffe/layers/pyloss.py
最后,反向函数定义如下:
def backward(self, top, propagate_down, bottom):
for i in range(2):
if not propagate_down[i]:
continue
if i == 0:
sign = 1
else:
sign = -1
bottom[i].diff[...] = sign * self.diff / bottom[i].num
我知道底部 [0]表示预测值,底部 [1]是目标值(基本事实)。
你能帮我理解为什么符号是 +1 表示预测而 -1 表示目标吗?我认为我们不需要为目标分配任何值到bottom[1].diff。
如果我有多标签问题,我该如何更新代码?