Deep Learning Specialization课程笔记——神经网络编程基础
2018-03-23 11:20
471 查看
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的推导:
非向量化和向量化的区别:
在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的推导:
相关文章推荐
- Deep Learning Specialization课程笔记——神经网络基础
- Deep Learning Specialization课程笔记——浅层神经网络
- Deep Learning Specialization课程笔记——深层神经网络
- [DeeplearningAI笔记]神经网络与深度学习2.1-2.4神经网络基础
- [DeeplearningAI笔记]神经网络与深度学习2.11_2.16神经网络基础(向量化)
- 深度学习DeepLearning.ai系列课程学习总结:2. 神经网络基础
- Deep Learning Specialization课程笔记——深度学习介绍
- DeepLearningAI 学习笔记 1.3 浅层 logistic 神经网络
- DeepLearning.ai学习笔记(二)改善深层神经网络:超参数调试、正则化以及优化--Week1深度学习的实用层面
- 吴恩达Deeplearning.ai专项课程笔记(一)-- 神经网络基础
- Coursera吴恩达《神经网络与深度学习》课程笔记(3)-- 神经网络基础之Python与向量化
- 深度学习DeepLearning.ai系列课程学习总结:8. 多层神经网络代码实战
- 《深度学习Ng》课程学习笔记01week2——神经网络基础
- 吴恩达Coursera深度学习课程 DeepLearning.ai 提炼笔记(1-2)-- 神经网络基础
- 吴恩达Coursera深度学习课程 DeepLearning.ai 提炼笔记(1-2)-- 神经网络基础
- Coursera deeplearning.ai 深度学习笔记2-1-Practical aspects of deep learning-神经网络实际问题分析(初始化&正则化&训练效率)与代码实现
- Coursera吴恩达《神经网络与深度学习》课程笔记(3)-- 神经网络基础之Python与向量化
- [DeeplearningAI笔记]神经网络与深度学习3.2_3.11(激活函数)浅层神经网络
- [DeeplearningAI笔记]神经网络与深度学习4.深度神经网络
- [DeeplearningAI笔记]改善深层神经网络1.1_1.3深度学习实用层面_偏差/方差/欠拟合/过拟合/训练集/验证集/测试集