1、为什么要用向量化?
向量化是非常基础的去除代码中for循环的艺术,在深度学习安全领域、深度学习实践中,你会经常发现自己训练大数据集,因为深度学习算法处理大数据集效果很棒,所以你的代码运行速度非常重要,否则如果在大数据集上,你的代码可能花费很长时间去运行,你将要等待非常长的时间去得到结果。所以在深度学习领域,运行向量化是一个关键的技巧。
让我们举个实例说明什么是向量化:
- 在逻辑回归中你需要去计算 z= +b,w、x都是列向量。如果你有很多的特征那么就会有一个非常大的向量,所以w∈ ,x∈,所以如果你想使用非向量化方法去计算 x,你需要用如下方式(python):
非向量化的实现方法:
向量化的方法:
对比向量化和非向量化代码运行的时间:
在两个方法中,向量化和非向量化计算了相同的值,如你所见,向量化版本花费了1.5毫秒,非向量化版本的for循环花费了大约几乎500毫秒,非向量化版本多花费了300倍时间。所以在这个例子中,仅仅是向量化你的代码,就会运行300倍快。这意味着如果向量化方法需要花费一分钟去运行的数据,for循环将会花费5个小时去运行。
一句话总结,以上都是再说和for循环相比,向量化可以快速得到结果。