MAYBETTY 2021-12-02 14:00 采纳率: 50%
浏览 21

关于python 中的for 循环

在做吴恩达深度学习中的编程正则化里面有一个block,我想要用循环解决问题。

img

这是有关的代码片段
m = Y.shape[1]
W1 = parameters["W1"]
W2 = parameters["W2"]
W3 = parameters["W3"]
我想用循环得出正则化的值,但是结果总是有问题。
for l in range(1,4):
L2_regularization_cost += (1./mlambd/2) * np.sum(np.square(Wl))
这是结果:
local variable 'L2_regularization_cost' referenced before assignment
这是答案提供的写法:
L2_regularization_cost = (1./m
lambd/2)*(np.sum(np.square(W1)) + np.sum(np.square(W2)) + np.sum(np.square(W3)))

我的循环代码里面哪里出错了呢?

  • 写回答

1条回答 默认 最新

  • CSDN专家-HGJ 2021-12-02 14:20
    关注

    代码中直接引起的错误是循环内的L2_regularization_cost没有赋值前引用,要实现变量值累加,变量需先初始化。另外直接用WI也不对,要么写成eval(f'W{I}'),要么直接遍历几个W值列表。

    L2_regularization_cost=0
    for w in [W1,W2,W3]:
        L2_regularization_cost += (1./m*lambd/2) * np.sum(np.square(w))
    
    评论 编辑记录
编辑
预览

报告相同问题?

问题事件

  • 创建了问题 12月2日