pytorch functional,pytorch cosine
在框架中可以使用火炬。余弦_相似度函数对两个向量或者张量计算余弦相似度,这篇文章主要给大家介绍了关于PyTorch中torch.nn.functional。余弦_相似度使用的相关资料,需要的朋友可以参考下
目录
概述按照dim=0求余弦相似:按照dim=1求余弦相似:总结
概述
根据官网文档的描述,其中暗淡的表示沿着对应的维度计算余弦相似。那么怎么理解呢?
首先,先介绍下所谓的dim:
a=torch.tensor([[ [1,2],[3,4] ],[ [5,6],[7,8] ],dtype=torch.float)
印刷(答。形状)
[
[
[1, 2],
[3, 4]
],
[
[5, 6],
[7, 8]
]
]
假设有注射毒品个矩阵:[[1, 2], [3, 4]] 和[[5, 6], [7, 8]], 求注射毒品者的余弦相似。
按照dim=0求余弦相似:
导入火炬. nn .功能为F
输入1=torch.tensor([[1,2]、[3,4]],dtype=torch.float)
input2=torch.tensor([[5,6]、[7,8]],dtype=torch.float)
输出=F。余弦_相似性(输入1,输入2,dim=0)
打印(输出)
结果如下:
张量([0.9558,0.9839])
那么,这个数值是怎么得来的?是按照
具体求解如下:
打印(f .余弦_相似性(火炬。张量([1,3],dtype=torch.float),torch.tensor([5,7),dtype=torch.float),dim=0)
打印(f .余弦_相似性(火炬。张量([2,4],dtype=torch.float),torch.tensor([6,8),dtype=torch.float),dim=0)
运行结果如下:
张量(0.9558)张量(0.9839)
可以用科学空间进一步佐证:
从科学计算导入空间
数据集=[1,3]
dataSetII=[5,7]
结果=1-空间。距离。余弦值(dataSetI,dataSetII)
打印(结果)
运行结果如下:
0.95577900872195
同理:
数据集=[2,4]
dataSetII=[6,8]
结果=1-空间。距离。余弦值(dataSetI,dataSetII)
打印(结果)
运行结果如下:
0.9838699100999074
按照dim=1求余弦相似:
输出=F。余弦_相似性(输入1,输入2,dim=1)
打印(输出)
运行结果如下:
张量([0.9734,0.9972])
同理,用用科学空间进一步佐证:
数据集=[1,2]
dataSetII=[5,6]
结果=1-空间。距离。余弦值(dataSetI,dataSetII)
打印(结果)
运行结果:0.973417168 6
数据集=[3,4]
dataSetII=[7,8]
结果=1-空间。距离。余弦值(dataSetI,dataSetII)
打印(结果)
运行结果:
0.9971641204866132
结果与余弦相似度相符合。
补充:给定一个张量,计算多个张量与它的余弦相似度,并将计算得到的余弦相似度标准化。
进口火炬
def get_att_dis(目标,行为):
attention_distribution=[]
对于范围内的我(行为。大小(0)):
attention _ score=火炬。余弦_相似性(目标,行为化[I].视图(1,-1)) #计算每一个元素与给定元素的余弦相似度
注意力_分布。附加(注意力分数)
注意力_分布=火炬。张量(注意力分布)
回归关注_分发/火炬。sum(attention _ distribution,0) #标准化
a=火炬FloatTensor(torch.rand(1,10))
打印( a ,a)
b=火炬FloatTensor(torch.rand(3,10))
打印( b ,b)
相似度=getattdis(目标=a,行为=b)
打印("相似性",相似性)
一个张量([[0.9255,0.2194,0.8370,0.5346,0.5152,0.4645,0.4926,0.9882,0.2783,
0.9258]])
乙等张量([[0.6874,0.4054,0.5739,0.8017,0.9861,0.0154,0.8513,0.8427,0.6669,
0.0694],
[0.1720, 0.6793, 0.7764, 0.4583, 0.8167, 0.2718, 0.9686, 0.9301, 0.2421,
0.0811],
[0.2336, 0.4783, 0.5576, 0.6518, 0.9943, 0.6766, 0.0044, 0.7935, 0.2098,
0.0719]])
相似张量([0.3448,0.3318,0.3234])
总结
到此这篇关于PyTorch中torch.nn.functional。余弦_相似度使用的文章就介绍到这了,更多相关PyTorch torch.nn.functional。余弦_相似性使用内容请搜索盛行信息技术软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行信息技术软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。