Python 实现梯度下降的问题
我从头开始实现梯度下降,我有一段代码给我带来了麻烦Python 实现梯度下降的问题,python,Python,我从头开始实现梯度下降,我有一段代码给我带来了麻烦 temp = theta_new[j] theta_new[j] = theta_new[j] - alpha*deriv theta_old[j] = temp 它没有改变theta\u new[j]。如果我在theta\u new[j]赋值之后打印theta\u new[j],那么它会被更改,但不知何故,我赋值theta\u old[j]的第三行将theta\u new[j]恢复到初始值。我假设这与数组的引用方式有关,但我不能对此置之不理
temp = theta_new[j]
theta_new[j] = theta_new[j] - alpha*deriv
theta_old[j] = temp
它没有改变
theta\u new[j]
。如果我在theta\u new[j]
赋值之后打印theta\u new[j]
,那么它会被更改,但不知何故,我赋值theta\u old[j]
的第三行将theta\u new[j]
恢复到初始值。我假设这与数组的引用方式有关,但我不能对此置之不理。您应该使用深度复制来复制对象,并创建一个新的内存值和一个新指针:
import copy
theta_old = copy.deepcopy(theta_new)
theta_new[j] = theta_new[j] - alpha*deriv
...
你确定alpha*deriv
不是零?我完整的例子将帮助我们帮助你们。