实施梯度下降的问题

时间:2017-10-04 01:55:54

标签: python

我正在从头开始实现渐变下降,我有一段代码给我带来了麻烦。

temp = theta_new[j]
theta_new[j] = theta_new[j] - alpha*deriv
theta_old[j] = temp

它没有改变theta_new[j]。如果我在分配theta_new[j]后立即打印theta_new[j],那么它会发生变化,但不知何故,我指定theta_old[j]的第三行会将theta_new[j]恢复为初始值。我认为这与如何引用数组有关,但我无法绕过它。

1 个答案:

答案 0 :(得分:-1)

您应该使用import copy theta_old = copy.deepcopy(theta_new) theta_new[j] = theta_new[j] - alpha*deriv ... 复制对象并创建新的内存值和新指针:

/tmp/2017-09-22/cyber.gz
/tmp/2017-09-23/cyber.gz
/tmp/2017-09-24/cyber.tar

https://docs.python.org/3/library/copy.html