torch.cuda.FloatTensor 与 torch.FloatTensor(torch.Tensor)--CPU和GPU上的数据类型

技术·学习 · 2023-02-13 · 444 人浏览

torch.cuda.FloatTensor 与 torch.FloatTensor(torch.Tensor)--CPU和GPU上的数据类型

  1. torch.cuda.FloatTensortorch.FloatTensor Pytorch中的tensor又包括CPU上的数据类型和GPU上的数据类型,一般GPU上的Tensor是CPU上的Tensor加cuda()函数得到的。
    一般系统默认是torch.FloatTensor类型(即CPU上的数据类型)。例如data = torch.Tensor(2,3)是一个2*3的张量,类型为FloatTensor; data.cuda()就转为GPU的张量类型,torch.cuda.FloatTensor类型。
  2. torch.Tensortorch.tensor

    torch.Tensortorch.Tensor()是Python类,更明确的说,是默认张量类类型torch.FloatTensor()的别名,torch.Tensor([1,2]) 会调用Tensor类的构造函数__init__,生成单一精度浮点类的张量。
    torch.tensor()torch.tensor()只是Python的函数,函数原型是: torch.tensor(data, dtype=None, device=None, requires_grad=False) 中data可以是:list, tuple, array, 标量等类型。
    torch.tensor()可以从数据中的数据部分做选择(而不是直接引用),根据原始数据类型生成相应的torch.LongTensortorch.FloatTensortorch.DoubleTensor

使用

x=torch.Tensor(4,3,2,2)
# 4是块数 3 是维度 ,2*2
输出:
tensor([[[[ 0.0000e+00,  4.7987e+30],
          [ 0.0000e+00,  0.0000e+00]],

         [[ 0.0000e+00,  0.0000e+00],
          [ 0.0000e+00,  0.0000e+00]],

         [[ 0.0000e+00,  0.0000e+00],
          [ 0.0000e+00,  0.0000e+00]]],


        [[[ 0.0000e+00,  0.0000e+00],
          [ 0.0000e+00,  0.0000e+00]],

         [[ 0.0000e+00,  0.0000e+00],
          [ 0.0000e+00,  0.0000e+00]],

         [[ 0.0000e+00,  0.0000e+00],
          [ 0.0000e+00,  0.0000e+00]]],


        [[[-1.3734e-30,  9.0944e-43],
          [ 0.0000e+00,  0.0000e+00]],

         [[ 1.4013e-45,  1.1286e+27],
          [ 0.0000e+00,  0.0000e+00]],

         [[ 5.1175e-41,  0.0000e+00],
          [ 0.0000e+00,  0.0000e+00]]],


        [[[ 9.3084e+02,  4.5907e-41],
          [-1.8294e-28,  9.0944e-43]],

         [[ 0.0000e+00,  1.1724e+04],
          [ 0.0000e+00,  0.0000e+00]],

         [[ 0.0000e+00,  0.0000e+00],
          [ 0.0000e+00,  0.0000e+00]]]])
python pytorch
Theme Jasmine by Kent Liao