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

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

目录

2.11向量化

什么是向量化vectorization?

loop 循环向量化

2.12向量化的更多例子

2.13 向量化 Logistic回归

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

2.15python中的广播


2.11向量化

什么是向量化vectorization?

​​​​​​​
​​​​​​​

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")

  向量化代码之后,运行速度大大提升

2.12向量化的更多例子

2.13 向量化 Logistic回归

 如果有M个样本,就需要计算M次z和a;为了执行正向传播步骤,定义矩阵X和 (n_{x},m) 矩阵即\mathbb{R}^{n_{x}*m} ;

[z^{(1)} z^{(2)} z^{(3)} z^{(4)}\cdot \cdot \cdot z^{(m)}]=w^{T}X_{T}[b b b \cdot \cdot \cdot b] ;

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

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

在python中称为广播“broadcasting”;

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

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

dz^{(1)}=a^{(1)}-y^{(1)} 同理dz^{(2)} dz^{(3)} ;

dz=[dx^{(1)} dx^{(2)}\cdot \cdot \cdot dx^{(m)}] ;

A=[a^{(1)} a^{(2)}\cdot \cdot \cdot a^{(m)}]  Y=[y^{(1)} y^{(2)}\cdot \cdot \cdot y^{(m)}] 均横向排列 ;

dz = A - Y;

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

T transpose转置;

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

2.15python中的广播

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

详细具体内容见下篇

(于 2022-10-11 10:57:48 首次发布)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值