同样在CPU环境使用张量计算,torch和numpy哪个更快?

由于数据预处理需要大量张量计算,为了加快速度,设计做了对比实验。

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快了好多个数量级
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值