https://blog.csdn.net/Treasure99/article/details/91345293
除了上文博主说的情况,在有的软件包中的一些方法里,举个例子.
import torch
x = torch.tensor([1,2,3,4])
print(x)
y = x.unsqueeze(1)
print(y)
print(x)
x.unsqueeze_(1)
print(x)
第一种方式x.unsqueeze(1),x的值并没有变化,而有末尾下划线的函数的调用x.unsqueeze_(1),表示在函数内部已经改变了x的数值。相当于C语言中的将地址传递给了函数,而不是传递的形式参量。
程序的运行结果如下所示
tensor([1, 2, 3, 4])
tensor([[1],
[2],
[3],
[4]])
tensor([1, 2, 3, 4])
tensor([[1],
[2],
[3],
[4]])