Performance 是否有一个函数可以有效地减去两个矩阵并返回张量?
我想在pytorch中高效地重新实现OpenCV BruteForce Matcher。这意味着我得到两个包含特征描述符的矩阵,我必须计算它们之间的距离。 目前我是这样做的:Performance 是否有一个函数可以有效地减去两个矩阵并返回张量?,performance,pytorch,Performance,Pytorch,我想在pytorch中高效地重新实现OpenCV BruteForce Matcher。这意味着我得到两个包含特征描述符的矩阵,我必须计算它们之间的距离。 目前我是这样做的: m, n, d = 10000, 1000, 2 x = torch.Tensor(size=(m, d)) y = torch.Tensor(size=(n, d)) dist = torch.sum(torch.stack([x-y_i for y_i in y]), (2,)) ##slow dist = dist.
m, n, d = 10000, 1000, 2
x = torch.Tensor(size=(m, d))
y = torch.Tensor(size=(n, d))
dist = torch.sum(torch.stack([x-y_i for y_i in y]), (2,)) ##slow
dist = dist.numpy()
matches = np.argsort(dist)[:,:2]
good_matches = []
for i, (a, b) in enumerate(matches):
if dist[i,b] > ratio*dist[i, a]:
good_matches.append([i,a])
return good_matches
有没有什么行动可以加快速度?pytorch多处理是一种好方法吗