一、张量的创建和维度操作
1.张量类型(dtype)
1.1类型之间的转换
t=torch.randn(3,3,dtype=torch.float)
t1=t.to(torch.float64)#t.to()会返回一个新的张量并不会改变to的值
复制代码
2.张量的存储设备(device)
小结: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载创建新的张量;
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END