我看到了三元组损失反向传播梯度公式是什么?对于梯度,锚点是n-p,正样本是p-a,负样本是a-n。
但是,在tripletLossLayer的第80行到第92行,与此不同。
即,对于梯度,锚点是p - n,正样本是p - a。到底哪个是正确的?
回答:
triplet_loss_layer.cpp中的第80行到第92行是forward_cpu函数的一部分 —— 这是实际的损失计算,而不是梯度计算。
梯度是在backward_cpu中计算的,在那里你可以看到每个bottom根据这里呈现的推导分配了其diff。