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)

文章讲述了torch.tensor和torch.from_numpy在将numpy数组转换为torchtensor时的区别,torch.tensor共享内存,而torch.from_numpy创建新空间。实验示例展示了修改源numpy数组如何影响两者的结果。
655

被折叠的 条评论
为什么被折叠?



