Paddle 的 Tensor 类提供了许多支持原地操作的方法, 比如 add_、subtract_、multiply_ 等,这些方法会直接修改 Tensor 本身,而不分配新的内存:
# 创建张量
X = paddle.to_tensor([1.0, 2.0, 3.0])
Y = paddle.to_tensor([4.0, 5.0, 6.0])
# 打印原始Y的内存地址
print(id(Y))
# 原地加法操作
Y.add_(X)
# 打印原地操作后的Y的内存地址
print(id(Y)) # 内存地址不变
运行结果:
1300723411024
1300723411024