自动赋值运算
在 PyTorch 中,方法名称后缀带有下划线 _ 的操作(如 .copy_()、.add_() 等)表示 in-place operation,即这些操作会直接修改原始张量的值,而不是返回一个新的张量。
---
tensor = torch.ones(3)
tensor.add_(5) # 直接修改 tensor,将每个元素加 5
print(tensor) # 输出: tensor([6., 6., 6.])
---
为什么需要 in-place 操作?
1. 节省内存:
• 原地操作直接修改原始张量的数据,不会分配新的内存空间。
• 适合对内存使用敏感的场景(如 GPU 计算中)。
2. 高效计算:
• 在深度学习中,大量中间张量会在反向传播中创建并销毁,使用原地操作可以减少不必要的张量创建。