PyTorch原地操作数据 (《动手学深度学习》笔记)
链接:http://d2l.ai/
我们可以使用切片表示法将操作的结果分配给先前分配的数组,例如Y[:] = 。为了说明这一点,我们首先创建一个新的矩阵Z,其形状与另一个Y相同,使用zeros_like来分配一个全
Z = np.zeros_like(Y) print('id(Z):', id(Z)) Z[:] = X + Y print('id(Z):', id(Z))
out:
id(Z): 140227416695616
id(Z): 140227416695616
如果在后续计算中没有重复使用X,我们也可以使用X[:] = X + Y或X += Y来减少操作的内存开销。
before = id(X) X += Y id(X) == before
out:
True