Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 是否有一个函数可以有效地减去两个矩阵并返回张量?_Performance_Pytorch - Fatal编程技术网

Performance 是否有一个函数可以有效地减去两个矩阵并返回张量?

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.

我想在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.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多处理是一种好方法吗