【问题标题】:Updating dictionary in python, during gradient descent在梯度下降期间更新python中的字典
【发布时间】:2018-09-11 09:35:06
【问题描述】:

在使用梯度下降更新参数时,我正在使用

for l in range(L):
    parameters["W" + str(l+1)] = parameters["W" + str(l+1)] - learning_rate* grads("dW" + str(l+1))
    parameters["b" + str(l+1)] = parameters["b" + str(l+1)] - learning_rate* grads("db" + str(l+1))

但我收到“dict”对象不可调用的错误。如何解决这个问题?

【问题讨论】:

  • 需要更多代码来帮助您!
  • 没有足够的代码来查看发生了什么
  • grads 是字典吗?如果将括号改为方括号,可能会解决'dict' object is not callable 错误,即grads['dW' + str(l + 1)]
  • 嗨,是的,parameters 和 grads 都是字典。我正在从头开始构建一个深度神经网络,我已经将所有参数存储在参数中,即每一层的 W[l] 和 b[l],以及 grads 中每一层的 dW[l] 和 db[l]。跨度>
  • 嗨乔纳森,谢谢,我使用了错误的括号,您的解决方案有效。谢谢。

标签: python dictionary machine-learning


【解决方案1】:

访问字典中的值需要括号[],而不是括号()(请参阅this answer。从您给我们的代码来看,似乎需要将grads("db" + str(l+1)) 更改为grads["db" + str(l+1)] 才能修复你的错误。

关于风格的几点说明:

【讨论】:

    猜你喜欢
    • 2016-03-20
    • 2017-06-23
    • 1970-01-01
    • 1970-01-01
    • 2020-11-21
    • 2019-11-15
    • 1970-01-01
    • 2019-08-08
    相关资源
    最近更新 更多