我看到了三元组损失反向传播梯度公式是什么?对于梯度,锚点是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
。