torch.tensor函数和torch.from_numpy()函数都可以将numpy array转换为torch tensro,不同之处在于前者共享内存(torch的底层实现就是numpy,所以可以共享),后者开辟新的空间
a=np.ones(4)
b=torch.from_numpy(a)
a[0]=2
b[1]=2
print(a,b)
output:
[2. 2. 1. 1.] tensor([2., 2., 1., 1.], dtype=torch.float64)
d=np.ones((4))
e=torch.tensor(d)
print(d,e)
d[0]=2
print(d,e)
e[1]=2
print(d,e)
output:
[1. 1. 1. 1.] tensor([1., 1., 1., 1.], dtype=torch.float64)
[2. 1. 1. 1.] tensor([1., 1., 1., 1.], dtype=torch.float64)
[2. 1. 1. 1.] tensor([1., 2., 1., 1.], dtype=torch.float64)