pytorch計算兩個特徵的餘弦相似度

首先,我們要記住一點,兩個特徵的餘弦相似度計算出來的範圍是**[-1,1]**
其實,對於兩個特徵,它們的餘弦相似度就是兩個特徵在經過L2歸一化之後的矩陣內積。
代碼如下:

import torch
import torch.nn.functional as F
#假設feature1爲N*C*W*H, feature2也爲N*C*W*H(基本網絡中的tensor都是這樣)
feature1 = feature1.view(feature1.shape[0], -1)#將特徵轉換爲N*(C*W*H),即兩維
feature2 = feature2.view(feature2.shape[0], -1)
feature1 = F.normalize(feature1)  #F.normalize只能處理兩維的數據,L2歸一化
feature2 = F.normalize(feature2)
distance = feature1.mm(feature2.t())#計算餘弦相似度
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章