当我使用运算符例如*=
或时,我发现了一件奇怪的事情+=
代码:
aa = Variable(torch.FloatTensor([[1,2],[3,4]]))
bb = aa
bb = bb*2
print(bb)
print(aa)
cc = Variable(torch.FloatTensor([[1,2],[3,4]]))
dd = cc
dd *= 2
print(cc)
print(dd)
Run Code Online (Sandbox Code Playgroud)
结果如下:
Variable containing:
2 4
6 8
[torch.FloatTensor of size 2x2]
Variable containing:
1 2
3 4
[torch.FloatTensor of size 2x2]
Variable containing:
2 4
6 8
[torch.FloatTensor of size 2x2]
Variable containing:
2 4
6 8
[torch.FloatTensor of size 2x2]
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,当我使用时bb=bb*2
,aa
没有受到影响。但是,如果使用dd *= 2
,cc
似乎指向(共享)与 相同的地址 …