我正在从头开始实现渐变下降,我有一段代码给我带来了麻烦。
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]
恢复为初始值。我认为这与如何引用数组有关,但我无法绕过它。
答案 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