Pytorch–Tensor

一、张量的创建和维度操作

1.张量类型(dtype)

Tensor类型.png

1.1类型之间的转换

t=torch.randn(3,3,dtype=torch.float)
t1=t.to(torch.float64)#t.to()会返回一个新的张量并不会改变to的值
复制代码

2.张量的存储设备(device)

存储设备转换.png

小结:to()函数既可以转换类型也可以转换存储设备;两个或多个向量之间的运算只有在·1相同设备上才能进行;

3.张量的创建(从一般到特殊)

3.1通过torch.tensor()函数创建

 torch.tensor([[1,2],[3,4]],dtype=torch.float32);#接收列表类型
 torch.tensor(np.array([[1,2],[3,4]]),dtype=torch.int32);#接收numpy类型
复制代码

3.2通过pytorch内置函数的函数创建张量

torch.zeros(2,2)
torch.ones(2,3)
torch.eye(3)#生成3x3的单位矩阵
torch.randint(0,10,(3,3))#生成0-10范围内服从均匀分布的3x3整数张量
torch.rand(3,3)          #生成0-1范围内服从均匀分布的3x3张量
torch.randn(3,3)         #生成服从标准正态分布的3X3张量
复制代码

3.3通过已知张量创建形状相同的张量(与2.2比较记忆)

t=torch.randn(5,6)
torch.zeros_like(t)
torch.ones_like(t)
torch.randint_like(t,0,10)
torch.rand_like(t)
torch.randn_like(t)
复制代码

小结: 本质上是取已知张量的形状载创建新的张量

3.4通过已知张量创建形状不同但数据类型相同张量

t=torch.randn(3,3,dtype=torch.float)
t.new_tensor([1,2,3])
t.new_zeros(3,3)
t.new_ones(3,3)
复制代码

小结:没有new_randn,new_rand这种函数,有new_tensor()这种具有一般性的函数;new_xxx是由张量变量调用的注意与前面的区别;本质上是取已知张量的dtype载创建新的张量;

tensor创建.png

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享