本文主要是介绍deeplearning.ai 吴恩达网上课程学习(三)——Python矢量化实现神经网络,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
本文主要讲述了矢量化和广播,在Python编程过程中提高了运行速度,中间讲述了Logistic回归中的矢量化表示。
(原文中代码实现基于jupyter notebook,文中代码实现基于之前搭建的Linux的TensorFlow平台,二者代码会有细小的区别,如果使用的是TensorFlow平台可使用本文的代码)
矢量化:在大数据情况下能有效提高运行速度。
example 1:向量*向量
在原文中用的jupyter notebook来进行的验证,我们在这里利用之前搭建的TensorFlow平台进行速度验证:搭建平台的链接深度学习(一):搭建TensorFlow
先新建一个time.py 在Desktop,写入下面代码:
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()
d = str(10000*(toc - tic))
print ("time1: %r"%d)f =0
tic = time.time()
for i in range(1000000):f += a[i]*b[i]
toc = time.time()
f = str(10000*(toc - tic))
print ("time2: %r"%f)
保存后,Ctrl+Alt+T键可调出终端,输入cd Desktop---python time.py,运行结果
根据电脑的不同时间会不一样,但是time2>>time1.
example 2:矩阵*向量
example 3 :自身与自身的矢量运算
Logistic回归中的矢量化表示
然而,为了进行矢量化,我们可以把所有训练样本(列向量)组合成一个矩阵。
结果:
典型的Python的广播示例:
首先,numpy会向1*4的矩阵进行按行复制得到3*4的矩阵,然后进行元素进行相除。
此文章为重点内容摘要,详细内容来自:
https://www.missshi.cn/api/view/blog/59a81b4ee519f50d04000159
这篇关于deeplearning.ai 吴恩达网上课程学习(三)——Python矢量化实现神经网络的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!