问题是,当您将值
w1从分配回时,
w2您实际上并没有将值从传递
w1给
w2,而是实际上是将两个变量指向 同一对象 。
您遇到的问题
w1 = np.array([1,2,3])w2 = w1w2[0] = 3print(w2) # [3 2 3]print(w1) # [3 2 3]np.may_share_memory(w2, w1) # True
解决方案
相反,您将需要复制 值 。使用numpy数组有两种常见的方法。
w1 = numpy.copy(w2)w1[:] = w2[:]
示范
w1 = np.array([1,2,3])w2 = np.zeros_like(w1)w2[:] = w1[:]w2[0] = 3print(w2) # [3 2 3]print(w1) # [1 2 3]np.may_share_memory(w2, w1) # False



