Pytorch使用 —— Tensor

张量tensor

  • 0阶张量:标量,[0],转置就是本身
  • 1阶张量:向量,[0,1,2,3],转置就是本身
  • 2阶张量:矩阵,[ [0,1,2],[3,4,5] ],存在转置
  • 3~N阶张量:高维数据集,存在转置

tensor的创建方法

使用列表

t1 = torch.tensor([1., 2., 3.]) #1.表示float类型的数据1

使用numpy.array

array1 = np.array([1.0, 2.0], [3.0, 4.0])
#使用如下两种方法,将array转换为tensor
t1 = torch.tensor(array1)
t2 = torch.from_numpy(array1)

使用内置方法生成

torch.empty(3,4) 创建3行4列的空tensor,其中数据随机
torch.ones([3,4]) 创建3行4列全为1的tensor
torch.zeros([3,4]) 创建3行4列全为0的tensor
torch.rand([3,4]) 创建3行4列的随机值tensor,随机值区间为[0, 1)
torch.randint(low = 0, high = 10, size = [3,4]) 创建3行4列的随机整数tensor,随机区间是[low, high)
torch.randn([3,4]) 创建3行4列的随机值tensor,随机值分布式均值为0,方差为1

tensor的使用方法

  • 获取值

    • tensor.item()
      针对仅存在1个元素的tensor,可以直接使用tensor.item()输出一个该元素的float值

    • tensor.data
      获取不带有grad的tensor数据,可用于转化numpy()

    • tensor.detach()
      获取不带有grad的tensor数据,可用于转换numpy()

  • 从numpy转化tensor

    • tensor.numpy() 可以将tensor转化为numpy
  • 获取tensor形状

    • tensor.size()

    • tensor.shape()

  • 改变tensor形状

    • tensor.view((3,4)),类似于numpy.reshape,是一种浅拷贝,仅仅是形状发生改变,view需要确保转换前后数据量相等
  • 获取tensor阶数

    • tensor.dim() 获取阶数
  • 获取最大最小元素值

    • tensor.max() 获取最大值

    • tensor.min() 获取最小值,格式为0阶tensor

  • 转置

    • tensor.T:获取全转置变量

    • tensor.transpose() :转置指定对象

    • tensor.permute() :转置指定对象

  • 取值

    • tensor[1,:,:] 获取第一个维度的第二个集合

    • tensor[1,2,3]获取指定元素

上一篇:PyTorch数据操作


下一篇:Pytorch深度学习实践(b站刘二大人)P10讲 (CNN卷积神经网络高级篇 作业)