Pytorch Tensor创建

基本数据类型

Data typedtypeCPU tensorGPU tensor
32-bit floating pointtorch.float32 or torch.floattorch.FloatTensortorch.cuda.FloatTensor
64-bit floating pointtorch.float64 or torch.doubletorch.DoubleTensortorch.cuda.DoubleTensor
16-bit floating point 1torch.float16 or torch.halftorch.HalfTensortorch.cuda.HalfTensor
16-bit floating point 2torch.bfloat16torch.BFloat16Tensortorch.cuda.BFloat16Tensor
64-bit complextorch.complex64
128-bit complextorch.complex128 or torch.cdouble
8-bit integer (unsigned)torch.uint8torch.ByteTensortorch.cuda.ByteTensor
8-bit integer (signed)torch.int8torch.CharTensortorch.cuda.CharTensor
16-bit integer (signed)torch.int16 or torch.shorttorch.ShortTensortorch.cuda.ShortTensor
32-bit integer (signed)torch.int32 or torch.inttorch.IntTensortorch.cuda.IntTensor
64-bit integer (signed)torch.int64 or torch.longtorch.LongTensortorch.cuda.LongTensor
Booleantorch.booltorch.BoolTensortorch.cuda.BoolTensor
quantized 8-bit integer (unsigned)torch.quint8torch.ByteTensor/
quantized 8-bit integer (signed)torch.qint8torch.CharTensor/
quantized 32-bit integer (signed)torch.qfint32torch.IntTensor/
quantized 4-bit integer (unsigned)torch.quint4x2torch.ByteTensor/

tensor numpy list

# torch.tensor(重要,基本只用该方法)
# 	单个标量->tensor
# 	多个标量->非法
#   list->tensor
# torch.Tensor, FloatTensor, IntTensor
#   单个标量->若为整数,则生成对应形状的tensor
#   多个标量->若为整数,则生成对应形状的tensor
#   list->tensor
# tensor使用.tolist()转换为list,而不是使用list(.)

torch.tensor(1.)
Out[12]: tensor(1.)
torch.tensor(1.).item()
Out[13]: 1.0
torch.tensor([2, 3])
Out[14]: tensor([2, 3])

torch.Tensor(4)
Out[15]: tensor([-2.3144e-30,  4.5907e-41,  0.0000e+00,  0.0000e+00])
torch.Tensor(5, 6)
Out[16]: 
tensor([[ 0.0000e+00,  0.0000e+00, -3.3819e-17,  8.5619e-43, -1.7335e-15,
          8.5619e-43],
        [ 1.4013e-45,  0.0000e+00,  5.6052e-45,  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.4013e-45,  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]])
torch.Tensor([7, 8])
Out[17]: tensor([7., 8.])
    
torch.tensor([2, 3]).tolist()
Out[18]: [2, 3]
list(torch.tensor([2, 3]))
Out[19]: [tensor(2), tensor(3)]
    
# numpy tensor
a = np.array([2, 3, 3])
torch.from_numpy(a)
Out[89]: tensor([2, 3, 3], dtype=torch.int32)
torch.from_numpy(a).numpy()
Out[90]: array([2, 3, 3])

# list numpy
t = [1,2,3]
np.array(t)
Out[95]: array([1, 2, 3])
np.array(t).tolist()
Out[96]: [1, 2, 3]

zeros ones full eye

# 加不加[]等效(不同于TensorFlow)
torch.zeros([2,3,4]).shape
Out[128]: torch.Size([2, 3, 4])
torch.zeros(2,3,4).shape
Out[127]: torch.Size([2, 3, 4])
torch.ones([2,3,4]).shape
Out[129]: torch.Size([2, 3, 4])
torch.ones(2,3,4).shape
Out[130]: torch.Size([2, 3, 4])
torch.full([2,3],7)
Out[143]:
tensor([[7, 7, 7],
        [7, 7, 7]])

# 单位矩阵必定2维,故torch.eye([3,4])不能用
torch.eye(3,4)
Out[148]:
tensor([[1., 0., 0., 0.],
        [0., 1., 0., 0.],
        [0., 0., 1., 0.]])

torch.arange(0,10)
Out[145]: tensor([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
torch.linspace(0,10,10)
Out[151]: 
tensor([ 0.0000,  1.1111,  2.2222,  3.3333,  4.4444,  5.5556,  6.6667,  7.7778,
         8.8889, 10.0000])

empty

torch.empty(0)
Out[116]: tensor([])
torch.empty(1)
Out[117]: tensor([2.4356e-29])
torch.empty(2)
Out[118]: tensor([1.9655e-19, 7.1527e-06])
torch.empty([2])
Out[119]: tensor([3.6893e+19, 8.6063e-03])

default_tensor_type

# 设置默认类型
torch.tensor([1.1,2,2]).type()
Out[121]: 'torch.FloatTensor'
torch.set_default_tensor_type(torch.DoubleTensor)
torch.tensor([1.1,2,2]).type()
Out[123]: 'torch.DoubleTensor'
rch.FloatTensor'
torch.set_default_tensor_type(torch.DoubleTensor)
torch.tensor([1.1,2,2]).type()
Out[123]: 'torch.DoubleTensor'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MallocLu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值