Python—如果我没有';不要在里面改变它的价值?
我想在Wo中设置矩阵W的值。 然后,我将进入一个循环,对W进行操作。在循环结束时,我想将它恢复到Wo,但我得到的结果相反,Wo变成了Wo 这怎么可能?我怎样才能实现我想要的?我也尝试过将Wo定义为一个全球性的,但没有结果Python—如果我没有';不要在里面改变它的价值?,python,loops,global,Python,Loops,Global,我想在Wo中设置矩阵W的值。 然后,我将进入一个循环,对W进行操作。在循环结束时,我想将它恢复到Wo,但我得到的结果相反,Wo变成了Wo 这怎么可能?我怎样才能实现我想要的?我也尝试过将Wo定义为一个全球性的,但没有结果 W = np.random.rand(5, 10) global Wo Wo = W # Back up for the initial values of W for k in range(0, K): for j in range(0, m): # Fo
W = np.random.rand(5, 10)
global Wo
Wo = W # Back up for the initial values of W
for k in range(0, K):
for j in range(0, m): # For every hidden node
for i in range(0, n): # For every connection
# Operations (W get changed)
W = Wo
然后,如果我检查Wo的值是否已被修改,以确保Wo==W始终为真
我错过了什么
提前感谢Python中的所有项目都是引用,因此如果更改一个引用,另一个也会更改
l = []
global l_global
l_global = l
for i in range(1, 10):
l.append(i)
print(l)
print(l_global)
现在对你的案例有意义吗?要完成你想要的,你需要一份深度拷贝。否则,只创建对同一内存的引用
import numpy as np
import copy as cp
W = np.random.rand(5, 10)
global Wo
Wo = cp.deepcopy(W) # Back up for the initial values of W
for k in range(0, K):
for j in range(0, m): # For every hidden node
for i in range(0, n): # For every connection
# Operations (W get changed)
W = cp.deepcopy(Wo)
你的副本作为参考
Wo
和W
是同一内存的不同别名。你需要一份深入的副本是的Xeningem,我没有考虑参考资料。。。非常感谢你