私は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]が示すことを知っています予測値とbottom [1]は目標値(グラウンドトゥルース)です。
符号が予測の場合+1、ターゲットの場合-1である理由を理解できますか? 私は、ターゲットに対してbottom [1] .diffに値を割り当てる必要はないと考えました。
複数ラベルに問題がある場合、どのようにコードを更新できますか?