01. 神经网络和深度学习 —— week3浅层神经网络(编程作业)

1. 任务

  • 用一个隐含层的神经网络实现一个二分类。
  • 利用非线性的激活函数单元。
  • 计算交叉熵损失函数。
  • 实现向前传播和向后传播。

2. 网络结构

网络结构

3. 建立神经网络的方法

  • 定义神经网络的结构(输入层,输出层,隐含层个数)。
  • 初始化模型参数。
  • 循环:
    —实现向前传播。
    —计算损失函数。
    —为了得到梯度值,实现向后传播。
    —更新参数(梯度下降)

4. 代码

import numpy as np
import matplotlib.pyplot as plt
from testCases import *
import sklearn
import sklearn.datasets
import sklearn.linear_model
from planar_utils import plot_decision_boundary, sigmoid, load_planar_dataset, load_extra_datasets

#%matplotlib inline #如果你使用用的是Jupyter Notebook的话请取消注释。

np.random.seed(1) #设置一个固定的随机种子,以保证接下来的步骤中我们的结果是一致的。

X, Y = load_planar_dataset()
#plt.scatter(X[0, :], X[1, :], c=Y, s=40, cmap=plt.cm.Spectral) #绘制散点图
shape_X = X.shape
shape_Y = Y.shape
m = Y.shape[1]  # 训练集里面的数量

print ("X的维度为: " + str(shape_X))
print ("Y的维度为: " + str(shape_Y))
print ("数据集里面的数据有:" + str(m) + " 个")

def layer_sizes(X , Y):
   """
   参数:
    X - 输入数据集,维度为(输入的数量,训练/测试的数量)
    Y - 标签,维度为(输出的数量,训练/测试数量)

   返回:
    n_x - 输入层的数量
    n_h - 隐藏层的数量
    n_y - 输出层的数量
   """
   n_x = X.shape[0] #输入层
   n_h = 4 #,隐藏层,硬编码为4
   n_y = Y.shape[0] #输出层

   return (n_x,n_h,n_y)

def initialize_parameters( n_x , n_h ,n_y):
   """
   参数:
       n_x - 输入节点的数量
       n_h - 隐藏层节点的数量
       n_y - 输出层节点的数量

   返回:
       parameters - 包含参数的字典:
           W1 - 权重矩阵,维度为(n_h,n_x)
           b1 - 偏向量,维度为(n_h,1)
           W2 - 权重矩阵,维度为(n_y,n_h)
           b2 - 偏向量,维度为(n_y,1)

   """
   np.random.seed(2) #指定一个随机种子,以便你的输出与我们的一样。
   W1 = np.random.randn(n_h,n_x) * 0.01
   b1 = np.zeros(shape=(n_h, 1))
   W2 = np.random.randn(n_y,n_h) * 0.01
   b2 = np.zeros(shape=(n_y, 1))

   #使用断言确保我的数据格式是正确的
   assert(W1.shape == ( n_h , n_x ))
   assert
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值