【发布时间】:2017-06-20 03:27:34
【问题描述】:
我有一个关于 Caffe 损失层中的后向函数的问题。 我在以下位置看到了欧几里德损失层的实现: https://github.com/BVLC/caffe/blob/master/examples/pycaffe/layers/pyloss.py
最后,backward函数定义如下:
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
我知道 bottom[0] 表示预测值,bottom[1] 是目标值(ground truth)。
你能帮我理解为什么 sign 是 +1 的预测和 -1 的目标?
我认为我们不需要为目标分配任何值给 bottom[1].diff。
如果我有多标签问题,我该如何更新代码?
【问题讨论】:
标签: deep-learning caffe loss