封面ano酱
没啥技术含量的东西,只是方便下想查的人和给自己做记录
import numpy as np
import time
import torch
import torch.nn.functional as F
a = np.random.rand(1,1000000)
b = np.random.rand(1,1000000)
c = torch.rand(1,1000000)
d = torch.rand(1,1000000)
e = torch.rand(1,1000000).cuda()
f = torch.rand(1,1000000).cuda()
#计算numpy计算速度
time_start=time.time()
dist1 = np.linalg.norm(a - b)#numpy求欧氏距离
time_end=time.time()
print(time_end-time_start)
#计算tensor在cpu上的计算速度
time_start=time.time()
dist2 = F.pairwise_distance(c, d, p=2)#pytorch求欧氏距离
time_end=time.time()
print(time_end-time_start)
#计算tensor在cuda上的计算速度
time_start=time.time()
dist2 = F.pairwise_distance(e, f, p=2)
time_end=time.time()
print(time_end-time_start)
计算结果:
0.0031995773315429688
0.025923967361450195
0.0006928443908691406
可以看出tensor不挂在cuda上,速度不如numpy。起码在计算欧式距离是如此...
希望能帮到跟我一样入门的兄弟