神经网络与深度学习笔记(四):向量化以提高计算速度

本文通过对比向量化运算和传统for循环在大规模数据处理上的效率,展示了使用numpy进行向量化运算可以显著提高计算速度,实测速度提升约四百倍。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们在计算模型w的转置乘上x的时候,往往需要把w和x分别进行向量化然后运算,因为这样会使我们的计算机得到结果的时间更快,而且这种方法不管是在CPU还是在GPU上都是成立的,首先我们来看看代码:

import numpy as np
import time
a=np.random.rand(1000000)
b=np.random.rand(1000000)
toc=time.time()
c=np.dot(a,b)
tic=time.time()
print("向量化之后计算的时间为:"+str(1000*(tic-toc))+"ms")
c=0
tic=time.time()
for i in range(1000000):
    c+=a[i]*b[i]
toc=time.time()
print("不做向量化计算之后的时间为:"+str(1000*(toc-tic))+"ms")

第一种方法方法运用了向量化来计算,也就是numpy当中的dot函数来计算,第二种方法则是利用了我们传统的for循环来进行计算,我们对每一个方法所的时间都做了记录,输出的结果如下:

向量化之后计算的时间为:1.0008811950683594ms
不做向量化计算之后的时间为:449.3072032928467ms

因此我们可以看到向量化之后的计算速度比之前使用常规方法快了大概四百倍,因此使用numpy来进行计算将会成为我们之后进行计算的首选方法。

 

转载于:https://www.cnblogs.com/geeksongs/p/11145776.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值