摘要根据官方网站上的文档,dim表示沿着相应的维度计算余弦很相似。 那你怎么理解?
首先,我先介绍一下dim:
a=torch.tensor ([ 1,2 ]、[ 3,4 ]、[ 5,6 ]、[ 7,8 ] )、dtype=torch.float ) print ) a.shape )
假设有[ [ 1,2 ],[ 3,4 ] ]和[ [ 5,6 ],[ 7,8 ] ]两个矩阵,求两者的余弦相似。
用dim=0求余弦相似: import torch.nn.functionalasfinput1=torch.tensor ([ 1,2 ],[ 3,4 ],dtype=torch.float )
tensor ([ 0.9558,0.9839 ] )中,这个数值是怎么得到的呢? 按照
具体解决办法如下:
print (f.cosine _ similarity (torch.tensor ([ 1,3 ],dtype=torch.float ),torch.tensor ) [ 5,7 ],dtype=
tensor(0.9558 ) tensor (0.9839 )可以在scipy.spatial中进一步证明:
fromscipyimportspatialdatasetiii=[ 1,3 ] dataset ii=[ 5,7 ] result=1- spatial.distance.cosine (dataseti,数据)
0.95577900872195同样:
dataseti=[ 2,4 ] datasetii=[ 6,8 ] result=1- spatial.distance.cosine (dataseti,dataset ii ) print ) ) result
0.9838699100999074dim=1,馀弦相似: output=f.cosine _ similarity (input 1,input2,dim=1) print )执行结果如下:
与tensor ([ 0.9734,0.9972 ] )类似,在scipy.spatial中进一步证明了:
dataseti=[ 1,2 ] datasetii=[ 5,6 ] result=1- spatial.distance.cosine (dataseti,dataset ii ) print ) ) result
dataseti=[ 3,4 ] datasetii=[ 7,8 ] result=1- spatial.distance.cosine (dataseti,dataset ii ) print ) ) result
0.9971641204866132结果与F.cosine_similarity一致。