神经网络与深度学习笔记(四):向量化以提高计算速度
我们在计算模型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来进行计算将会成为我们之后进行计算的首选方法。