2021/5/20
张量
张量的几种初始的方式,常见的属性
一、张量的初始化
-
tensor(data,**kargvs)构造函数 data可以为任意类型的数据常用的关键字参数:dtype,device,requires_grad,pin_memory
-
torch.Tensor(self, /, *args, **kwargs)构造函数,类似tensor构造函数,区别点在于:前者数据类型与data一致,后者默认为float
-
from_numpy(array)从numpy数组转化,特点两者共享内存(引用同一个数组)
-
tensor2tensor:使用一些特殊的函数(new_ones,like_ones....),在原地修改张量,但是选择性保留旧张量的一些属性
import troch
x=[[1,2,3],[4,5,6]]
# tensor
tensor=torch.tensor(x)
#Tensor
Tensor=torch.Tensor(x)
print(tensor.dtype,Tensor.dtype) # torch.int64,torch.float32
# from_numpy
x=np.array(x)
tensor=torch.from_numpy(x)
print(type(x),tensor.type()) #<class 'numpy.ndarray'> torch.LongTensor
# 验证x,tensor为同一内存
x+=2
print(x,tensor) #[[3 4 5][6 7 8]] tensor([[3, 4, 5],[6, 7, 8]])
二、张量的常见属性
# 张量的常见属性
tensor=torch.tensor([1,2,3],dtype=torch.float32,device=torch.device('cpu'))
tensor.type(),tensor.shape,tensor.size(),tensor.device
# ('torch.FloatTensor', torch.Size([3]), torch.Size([3]), device(type='cpu'))