Pytorch损失函数优化的目标是让loss越小越好,如果损失是平方,最小是0,所以优化目标是为0
如果人脸识别用欧式距离,正样本距离越小越好,距离的平方即可,
负样本这是欧式距离,目标是让距离越大也好,loss只能越小越好,那就距离乘以-1,确实会越来越小,但是loss向负无穷靠近,正样本的loss很小,感觉被淹没忽略了,
所以人脸识别用距离损失函数感觉不太合适。
以下内容转自:
人脸识别之欧氏距离——余弦距离_猫猫与橙子的博客-CSDN博客
最近训练了一个人脸识别模型,在测试集上的效果较之前的模型相比(lfw,cfp_fp,agedb_30),accucay都有所提升,但是在自己的测试集效果上却特别差。然后仔细的研读了相应的测试代码,先把训练工程中的代码贴出来:
diff = np.subtract(embeddings1, embeddings2)#做减法
dist = np.sum(np.square(diff), 1)#计算各元素的平方后