import numpy as np
import torch
a = np.ones(5)
b = torch.from_numpy(a)# 使用from_numpy方法,Tensor只会指向numpy数据
a_ = b.numpy() # a_使用Tensor中的数据
"""
a = np.add(a,1) #只是将a中保存的指针指向新计算好的数据上去
print(a) #[2,2,2,2,2]
print(b) #[1,1,1,1,1]
print(a_) #[1,1,1,1,1]
"""
"""
np.add(a, 1, out=a) #改变了a指向的数据
print(a) #[2,2,2,2,2]
print(b) #[2,2,2,2,2]
print(a_) #[2,2,2,2,2]
"""
m=np.ones(5)
n=torch.Tensor(m) #Tensor重新创建数据,深复制
n_=n.numpy() #n_指向Tensor中的数据
m[0]=2
print(m) #[2,1,1,1,1]
print(n) #[1,1,1,1,1] Tensor没有变化
print(n_) #[1,1,1,1,1]
n[1]=2
print(m) #[2,1,1,1,1] m没有变化
print(n) #[1,2,1,1,1]
print(n_) #[1,2,1,1,1] n_变化