1.什么是向量化
在逻辑回归中(python)
显然,向量化快速,方便。
2.小例子(python):向量化和非向量化运行时间的区别
import numpy as np n = np.arrary([1,2,3,4]) print(a)
import numpy as np import time a = np.random.rand(1000000) b = np.random.rand(1000000)#百万维数组 tic = time.time() #记录当前时间 c = np.dot(a,b) toc = time.time() print(c) print("vectorized version:"+str(1000*(toc-tic))+"ms") #非向量化的版本 c = 0 tic = time.time() for i in range(1000000): c += a[i]*b[i] toc = time.time() print(c) print("For loop:" + str(1000*(toc-tic)) +"ms")#打印for循环的版本的时间
运行一次结果
结果说明向量化可以节省很多时间
更多例子
避免使用for循环例1:向量u为矩阵A与向量v的乘积,左边为非向量版本,右边是向量版本(python)
非向量
u = np.zeros(n,1) for i in range(n)u[i] = math.exp.(v[i])
向量
import numpy as np u = np.exp(v)
numpy里面有很多内置函数,np.log(v)(每个元素的对数)、np.abs(v)(每个元素的对绝对值)、np.maximum(v)(v里和0相比最大元素)。
怎么把向量化用到逻辑回归,去掉for循环。逻辑回归导数的程序
想向量化,dw1,dw2不要初始化为0,应为向量
