我在使用cupy实现机器学习的梯度公式时,遇到了一个奇怪的错误,变量temp_value无故发生变化。以下是我的代码:
输出结果是:
1 1
1 2
1 3
0 4
0 5
0 6
2 1
2 2
2 3
1 4
1 5
1 6
[0 0]
您可以观察到,每次temp_value在第四个检查点时,其值都会减少1,但我并没有做任何更新这个变量的操作。
这是为什么呢?提前感谢您的帮助!
回答:
这可能是因为temp
被赋值为x[index]
,但x[index]
会被改变。请在for循环的第一条语句中使用temp_value = x[index].copy()
替代temp_value = x[index]
。为此,您还需要在文件顶部添加import copy
。