pytorch 求余弦相似度:torch.nn.CosineSimilarity(dim=1, eps=1e-08)

cos = torch.nn.CosineSimilarity(dim=1, eps=1e-6)
output = cos(input1,input2:input1,input2 维度必须一样

上图求的相似度是input1中的[1,2]与input2中的[3,4],input1中的[3,4]与input2中的[5,6].

假如我们想求的是一次求出1中的[1,2]与2[[3,4],[5,6]]的相似性,我们令a=input1,h=input2,先对a,h 求得二范数c,f,然后复制c,f(广播法则)和a,h一样得d,g。d,g然后和a,h每个元素相除,利用np.dot()就可得到余弦相似性。,

这样就一次求的[1,2]与h中每行的相似性,h中的行数还可以增加,就相当于h中的样本还可以更多,[1,2]相当于一个查询图像,h可向当与一个图库图像。

猜你喜欢

转载自blog.csdn.net/weixin_40957334/article/details/82822690