python第三周笔记_【吴恩达课后编程作业】第3周(个人笔记),第三周

【吴恩达课后编程作业】第三周 (个人笔记)

声明

本文用于记录博主学习之中遇到的问题,希望能帮到遇到同样问题的人。

课后编程作业参考

【中文】【吴恩达课后编程作业】Course 1 - 神经网络和深度学习 - 第三周作业

遇到的问题

首先在定义神经网络结构中,测试layer_sizes时,显示输出层的节点数量为: n_y = 2

=========================测试layer_sizes=========================

输入层的节点数量为: n_x = 5

隐藏层的节点数量为: n_h = 4

输出层的节点数量为: n_y = 2

然后初始化模型的参数中,测试initialize_parameters时,发现W2的维度为(1,4)

=========================测试initialize_parameters=========================

W1 = [[-0.00416758 -0.00056267]

[-0.02136196 0.01640271]

[-0.01793436 -0.00841747]

[ 0.00502881 -0.01245288]]

b1 = [[ 0.]

[ 0.]

[ 0.]

[ 0.]]

W2 = [[-0.01057952 -0.00909008 0.00551454 0.02292208]]

b2 = [[ 0.]]

在initialize_parameters函数的注释中写道:W2 - 权重矩阵,维度为(n_y,n_h)

在代码中W2 = np.random.randn(n_y,n_h) * 0.01

好像无论怎么看W2的维度都应该是(2,4)而不是(1,4),当时被这个问题在困扰了好一会

解决

在测试layer_sizes代码中:

print("=========================测试layer_sizes=========================")

X_asses , Y_asses = layer_sizes_test_case()

(n_x,n_h,n_y) = layer_sizes(X_asses,Y_asses)

print("输入层的节点数量为: n_x = " + str(n_x))

print("隐藏层的节点数量为: n_h = " + str(n_h))

print("输出层的节点数量为: n_y = " + str(n_y))

可知X_asses,Y_asses来自于layer_sizes_test_case()

而在测试initialize_parameters代码中:

#测试initialize_parameters

print("=========================测试initialize_parameters=========================")

n_x , n_h , n_y = initialize_parameters_test_case()

parameters = initialize_parameters(n_x , n_h , n_y)

print("W1 = " + str(parameters["W1"]))

print("b1 = " + str(parameters["b1"]))

print("W2 = " + str(parameters["W2"]))

print("b2 = " + str(parameters["b2"]))

n_x , n_h , n_y来自于initialize_parameters_test_case()

打开testCase.py,找到这两个函数

def layer_sizes_test_case():

np.random.seed(1)

X_assess = np.random.randn(5, 3)

Y_assess = np.random.randn(2, 3)

return X_assess, Y_assess

def initialize_parameters_test_case():

n_x, n_h, n_y = 2, 4, 1

return n_x, n_h, n_y

发现在initialize_parameters_test_case()中将n_y定义为1,但是在layer_sizes_test_case()中将 Y_assess = np.random.randn(2, 3),所以才会引起之前的误会。

不过目前也只处于知其然但不知其所以然的状态,为何要这么定义两个不同的n_y,求大神解答!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值