You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

梯度下降更新参数时Python字典报错‘dict不可调用’的解决方法

解决梯度下降代码中的‘dict' object is not callable错误

嘿,这个错误其实挺常见的,问题就出在你访问字典grads的方式上!

你写的代码里用了**括号()**来获取grads里的梯度值:

grads("dW" + str(l+1))
grads("db" + str(l+1))

但在Python里,字典是用**方括号[]**来访问键对应元素的,括号是用来调用函数的,所以Python会误以为grads是个可调用的函数,可它本质是个字典,自然就抛出这个错误了。

修正后的代码应该是这样的:

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)]

另外给你个小建议,用Python的f-string来拼接字符串会让代码更简洁易读,比如改成这样:

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

这样看起来是不是清爽多啦?

内容的提问来源于stack exchange,提问作者Aditya Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:25:58