由于数据预处理需要大量张量计算,为了加快速度,设计做了对比实验。
1.实验方案
arr1=np.random.rand(2,400,400)
arr2=np.random.rand(2,400,400)
arr3=np.random.rand(2,400,400)
arr4=np.random.rand(2,400,400)
start_arr_time=time.time()
for i in range(10000):
data=np.sqrt((arr1-arr2)**2+(arr3-arr4)**2)
print('numpy Done!')
end_arr_time=time.time()
print('numpy time:',end_arr_time-start_arr_time)
input1 = torch.rand(2, 400, 400)
input2 = torch.rand(2, 400, 400)
input3 = torch.rand(2, 400, 400)
input4 = torch.rand(2, 400, 400)
start_tensor_time=time.time()
for i in range(10000):
data=torch.sqrt((input1-input2)**2+(input3-input4)**2)
print('torch Done!')
end_tensor_time=time.time()
print('torch time:',end_tensor_time-start_tensor_time)
input1 = torch.rand(2, 400, 400).cuda()
input2 = torch.rand(2, 400, 400).cuda()
input3 = torch.rand(2, 400, 400).cuda()
input4 = torch.rand(2, 400, 400).cuda()
start_cuda_time=time.time()
for i in range(10000):
data=torch.sqrt((input1-input2)**2+(input3-input4)**2).cpu()
print('cuda Done!')
end_cuda_time=time.time()
print('cuda time:',end_cuda_time-start_cuda_time)
2.实验结果
numpy Done! numpy time: 46.95839834213257 torch Done! torch time: 2.089326858520508 cuda Done! cuda time: 0.6110734939575195 结论:无论在gpu还是cpu,torch 的速度比np快了好多个数量级