<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
根據官網檔案的描述,其中 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] ] ] """
假設有2個矩陣:[[1, 2], [3, 4]] 和 [[5, 6], [7, 8]]
, 求2者的餘弦相似。
import torch.nn.functional as F input1 = torch.tensor([[1, 2], [3, 4]], dtype=torch.float) input2 = torch.tensor([[5, 6], [7, 8]], dtype=torch.float) output = F.cosine_similarity(input1, input2, dim=0) print(output)
結果如下:
tensor([0.9558, 0.9839])
那麼,這個數值是怎麼得來的?是按照
具體求解如下:
print(F.cosine_similarity(torch.tensor([1,3], dtype=torch.float) , torch.tensor([5,7], dtype=torch.float), dim=0)) print(F.cosine_similarity(torch.tensor([2,4], dtype=torch.float) , torch.tensor([6,8], dtype=torch.float), dim=0))
執行結果如下:
tensor(0.9558)tensor(0.9839)
可以用scipy.spatial
進一步佐證:
from scipy import spatial dataSetI = [1,3] dataSetII = [5,7] result = 1 - spatial.distance.cosine(dataSetI, dataSetII) print(result)
執行結果如下:
0.95577900872195
同理:
dataSetI = [2,4] dataSetII = [6,8] result = 1 - spatial.distance.cosine(dataSetI, dataSetII) print(result)
執行結果如下:
0.9838699100999074
output = F.cosine_similarity(input1, input2, dim=1) print(output)
執行結果如下:
tensor([0.9734, 0.9972])
同理,用用scipy.spatial
進一步佐證:
dataSetI = [1,2] dataSetII = [5,6] result = 1 - spatial.distance.cosine(dataSetI, dataSetII) print(result)
執行結果:0.973417168333576
dataSetI = [3,4] dataSetII = [7,8] result = 1 - spatial.distance.cosine(dataSetI, dataSetII) print(result)
執行結果:
0.9971641204866132
結果與F.cosine_similarity
相符合。
補充:給定一個張量,計算多個張量與它的餘弦相似度,並將計算得到的餘弦相似度標準化。
import torch def get_att_dis(target, behaviored): attention_distribution = [] for i in range(behaviored.size(0)): attention_score = torch.cosine_similarity(target, behaviored[i].view(1, -1)) # 計算每一個元素與給定元素的餘弦相似度 attention_distribution.append(attention_score) attention_distribution = torch.Tensor(attention_distribution) return attention_distribution / torch.sum(attention_distribution, 0) # 標準化 a = torch.FloatTensor(torch.rand(1, 10)) print('a', a) b = torch.FloatTensor(torch.rand(3, 10)) print('b', b) similarity = get_att_dis(target=a, behaviored=b) print('similarity', similarity)
a tensor([[0.9255, 0.2194, 0.8370, 0.5346, 0.5152, 0.4645, 0.4926, 0.9882, 0.2783,
0.9258]])
b tensor([[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]])
similarity tensor([0.3448, 0.3318, 0.3234])
到此這篇關於PyTorch中torch.nn.functional.cosine_similarity使用的文章就介紹到這了,更多相關PyTorch torch.nn.functional.cosine_similarity使用內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45