相似度矩阵结果遍历
向量:
tensor([[0.4284, 0.7538, 0.4982],
[0.8600, 0.0694, 0.5055]], dtype=torch.float64)
相似度矩阵:
因为是笛卡尔积,结果有一半多是重复的:
tensor([[1.0000, 0.6726],
[0.6726, 1.0000]], dtype=torch.float64)
0 1 tensor(0.6726, dtype=torch.float64)
相似度归一化之后,元素平方和为1,相似度矩阵遍历方法代码:
import cv2
import numpy as np
import torch
def l2_norm(input,axis=1):
norm = torch.norm(input,2,axis,True)
output = torch.div(input, norm)
return output
res=[]
score_level=0.99
for i in range(2):
data=np.random.rand(3)
data=torch.from_numpy(data)
feat = l2_norm(data.unsqueeze(0))
res.append(feat)
norm_life=torch.cat(res,0)
print(norm_life)
inner_mat=torch.matmul(norm_life,norm_life.T)
print(inner_mat)
data_l=inner_mat.size(0)
for i in range(data_l):
for j in rang