当前位置:   article > 正文

【深度学习】吴恩达-课后作业-搭建多层神经网络以及应用_吴恩达课后作业

吴恩达课后作业
  • Ng的深度学习,其实前几个月就听完了,课后作业也是大懂不懂的都做了一遍,代码也跟着各种各样的参考敲了一遍,但暑假几个月没怎么学习。。。基本也忘得差不多了,这几周回顾了一下深度学习这门课的笔记,看了别的博主的总结,对CNN,RNN,LSTM,注意力机制等网络结构进行了复盘,虽然感觉自己很心浮气躁,一边也在学集成学习那几个算法和推荐系统相关,这里也告诉自己:贪多嚼不烂,心急吃不了热豆腐,慢慢来,还是要多积累。
  • 打算慢慢把深度学习这些代码都复盘一遍,标上注释,不过感觉这个过程会很慢。

目录

参数初始化

前向传播 

计算前向传播的损失 

反向传播 

参数初始化

  1. import numpy as np
  2. import h5py
  3. import matplotlib.pyplot as plt
  4. import testCases
  5. from dnn_utils import sigmoid, sigmoid_backward, relu, relu_backward
  6. import lr_utils
  7. #两层神经网络参数初始化
  8. np.random.seed(1)#随机种子确保结果相同
  9. def initialize_parameters(n_x,n_h,n_y):
  10. W1 = np.random.randn(n_h, n_x) * 0.01
  11. b1 = np.zeros((n_h, 1))
  12. W2 = np.random.randn(n_y, n_h) * 0.01
  13. b2 = np.zeros((n_y, 1))
  14. #使用断言确保数据格式是正确的
  15. assert(W1.shape == (n_h, n_x))
  16. assert(b1.shape == (n_h, 1))
  17. assert(W2.shape == (n_y, n_h))
  18. assert(b2.shape == (n_y, 1))
  19. parameters = {"W1": W1,
  20. "b1": b1,
  21. "W2": W2,
  22. "b2": b2}
  23. return parameters
  24. #多层神经网络参数初始化
  25. '''layers_dims - 包含网络中每个层的节点数量的列表
  26. #比如网络有三层,第一层有5个神经元,第二层有3个神经元,第三层有6个神经元
  27. 则layers_dims = [5,3,6],len(layers_dims) = 3'''
  28. def initialize_parameters_deep(layers_dims):
  29. np.random.seed(3)
  30. parameters = {}#存放参数的字典
  31. L = len(layers_dims)#网络的层数
  32. for l in range(1,L):#遍历网络的每一层对参数进行随机初始化
  33. parameters["W" + str(l)] = np.random.randn(layers_dims[l], layers_dims[l - 1]) / np.sqrt(layers_dims[l - 1])
  34. parameters["b" + str(l)] = np.zeros((layers_dims[l], 1))
  35. #确保数据的格式正确
  36. assert(parameters["W" + str(l)].shape == (layers_dims[l], layers_dims[l-1]))
  37. assert(parameters["b" + str(l)].shape == (layers_dims[l], 1))
  38. return parameters

前向传播 

  1. #线性部分
  2. def linear_forward(A,W,b):
  3. Z = np.dot(W,A) + b
  4. assert(Z.shape == (W.shape[0],A.shape[1]))
  5. cache = (A,W,b)#存储前向传播得到的参数用于反向传播
  6. return Z,cache
  7. #神经网络每一层的带激活函数的线性部分
  8. def linear_activation_forward(A_prev,W,b,activation):
  9. if activation == "sigmoid":
  10. Z, linear_cache = linear_forward(A_prev, W, b)
'
运行
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/1003167
推荐阅读
相关标签
  

闽ICP备14008679号