我们在计算模型 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 来进行计算将会成为我们之后进行计算的首选方法.
来源: http://www.bubuko.com/infodetail-3116144.html