Vectorization
在深度学习中,向量化用于消除一些for循环来加快运算的速度。
文章目录
1、What is Vectorization
向量化就是把一些需要循环运算的数据用向量去表示和运算。如图,随机向量的乘机,我们用for循环迭代相加和用numpy中的dot函数去做,时间差距可以达到两百倍。
2、More Vectorization Examples
不仅仅有doc函数去完成向量和矩阵之间的计算,还有exp,log,abs,maximum等等。
在我们的逻辑回归梯度下降算法中,第二个for循环就可以用向量化的方式代替,设置dw=np.zeros((n_x,1)),所有的x特征值做成一个向量,然后去累加:dw+=x*dw,用向量计算更简便了。
3、Vectoriztion Logistic Regression
通过向量化把之前的第一个for循环化简,写成矩阵的加减乘除形式。其中用到了python中的广播。
最后,从原来的代码,实现了对两次for循环的向量化,图中右边是整个向量化的结果,效率比之前高了不少。当然,如果我们需要多次迭代的梯度下降,还需要在外层做一个for循环,这个是避免不了的。
4、Broadcasting example
python中的广播很好理解,就是在矩阵的运算过程中,自动补全成符合运算要求的矩阵的形式,再去计算。
附上课后选择题和编程作业