Deep Learning Specialization课程笔记——神经网络编程基础

Vectorization

非向量化和向量化的区别:


在jupyter notebook上:

import time

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

c=0
tic=time.time()
for i in range(1000000):
    c+=a[i]*b[i]
toc=time.time()
print("for loop version:"+ str(1000*(toc-tic))+"ms")

得到结果:


说明矢量化速度比for loop快很多。

GPU和CPU都有并行化的指令,他们有时候会叫做SIMD指令,代表一个单独指令多维数据。矢量化利用了并行化去更快地计算。


More Vectorization Examples

经验之谈,在编写神经网络和逻辑回归时,都要尽可能避免使用显式的for-loop。

矩阵A和向量v的乘积例子:


向量v向向量u转化的例子:


其中v**2计算向量中每个元素的平方。

对逻辑回归代码的矢量化改写:



 Vectorizing Logistic Regression

可以实现用梯度下降的一次迭代来处理整个训练集,而不需要一个for loop。

向量化的改写公式:



Vectorizing Logistic Regression's Gradient Output

在进行梯度下降的计算时,db和dw的求解如下:


对代码的改写为:


右边的式子实现了不使用for循环完成一次梯度下降,但如果想让梯度下降迭代很多次,还是需要for循环。


Broadcasting

广播是另一种能让python代码运行更快的技术。以卡路里问题举例:



求每种食物的总卡路里:


然后计算百分比:


广播在这里的含义,是可以自动将(1,4)矩阵转变为(3,4),实现除法运算。

上上节中,加b也是运用了广播的原理。

更多广播运算:



A note on python/numpy vectors


具体的note见注释。

assert(a.shape==(5,1))断言语句。

这节的要点就是:为了简化代码,不要用秩为一的矩阵


Quick tour of Jupyter/iPython Notebooks

没有什么内容。


Explanation of logistic regression cost function

loss function公式的推导:


cost function的推导:



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Sklearn和DeepLearning4j是两个不同的机器学习框架。Sklearn是一个流行的Python机器学习库,提供了各种常用机器学习算法的实现和工具。它包括了数据预处理、特征选择、模型评估等功能。而DeepLearning4j是一个用Java编写的深度学习库,主要用于建立和训练神经网络模型。 在你提供的引用中,引用是Sun等人在2016年的一篇论文,标题为"Deep Residual Learning for Image Recognition",该论文介绍了一种深度学习模型用于图像识别的方法。引用是一段代码,用于在Sklearn中进行平面数据分类的实验。引用则是一篇关于数据预处理的文章目录。 综上所述,Sklearn是一个Python机器学习库,而DeepLearning4j是一个Java深度学习库,它们分别用于不同的机器学习任务。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [深度残差收缩网络和极端随机森林.zip](https://download.csdn.net/download/qq_30803353/87761760)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Coursera-Deep Learning Specialization 课程之(一):Neural Networks and Deep Learning-weak3编程作业](https://blog.csdn.net/leaeason/article/details/78262356)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [MachineLearning&DeepLearning:数据预处理](https://blog.csdn.net/qq_34262612/article/details/108392610)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值