吴恩达AI机器学习-01神经网络与深度学习week2中-神经网络基础

‼️博客为作者学习回顾知识点所用,并非商用,如有侵权,请联系作者删除‼️

目录

2.11向量化

什么是向量化vectorization?

loop 循环向量化

2.12向量化的更多例子

2.13 向量化 Logistic回归

2.14向量化Logistic回归的梯度输出

2.15python中的广播


 

2.11向量化

什么是向量化vectorization?

​​​​​​​吴恩达AI机器学习-01神经网络与深度学习week2中-神经网络基础_第1张图片
​​​​​​​

import numpy as np

a = np.array[1,2,3,4]
print(a)

#output = [1,2,3,4]

 用随机值创建了一个百万维度的数组

import time
import numpy as np

a = np.random.rand(1000000)
b = np.random.rand(1000000)

tic = time.time()
c = np.dot(a,b)
toc = time.time()

print("vectorized version:" + str(1000*(toc-tic)) +"ms")

#ouput = vectorized version:0.6549358367919922ms

loop 循环向量化

import time
import numpy as np

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 version:" + str(1000*(toc - tic)) + "ms")

吴恩达AI机器学习-01神经网络与深度学习week2中-神经网络基础_第2张图片

  向量化代码之后,运行速度大大提升吴恩达AI机器学习-01神经网络与深度学习week2中-神经网络基础_第3张图片

2.12向量化的更多例子

吴恩达AI机器学习-01神经网络与深度学习week2中-神经网络基础_第4张图片

吴恩达AI机器学习-01神经网络与深度学习week2中-神经网络基础_第5张图片

吴恩达AI机器学习-01神经网络与深度学习week2中-神经网络基础_第6张图片 

2.13 向量化 Logistic回归

吴恩达AI机器学习-01神经网络与深度学习week2中-神经网络基础_第7张图片

 如果有M个样本,就需要计算M次z和a;为了执行正向传播步骤,定义矩阵X和  矩阵即 ;

 ;

bbbb···是一个1xM的向量或者1xM的矩阵或者说是一个M维的行向量;

熟悉矩阵乘法,理解下部分红圈的含义;

在python中称为广播“broadcasting”;

计算所有的z与a在同一时间 z=np.dot(w,T,x)+b.

2.14向量化Logistic回归的梯度输出

吴恩达AI机器学习-01神经网络与深度学习week2中-神经网络基础_第8张图片 

 同理 ;

 ;

   均横向排列 ;

;

计算 和 db 有两种:一种是loop循环,一种是向量化.

吴恩达AI机器学习-01神经网络与深度学习week2中-神经网络基础_第9张图片

T transpose转置;

尽量不要使用亚式循环,但是如果要进行1000次,还是需要使用循环 for i in range(1000)! 这个for循环目前还没有方法去掉~

2.15python中的广播

广播可以使python和numpy的代码运行更高效

详细具体内容见下篇

你可能感兴趣的:(机器学习,python,机器学习,深度学习,人工智能)