张量复制方式
op | 是否共享内存 | 是否保留在计算图中参与梯度计算 |
---|
tensor.clone() | 新创建内存 | 是 |
tensor.detach() | 共享内存 | 否 |
tensor.clone().detach() | 新创建内存 | 否 |
说明
是否新建内存意味着:
假定A和B共享内存,那么对A或B的改变将反馈到A和B。因为变量名只是一个对数据的引用,数据改变了,那么A和B自然都变了。
值得注意的是
Python机制:直接变量复制是共享内存的。
例如:A=B,那么对于B的任何改变,会直接反馈到A上;对A的任何改变,也会直接反馈到B上