官方文档:
https://pytorch.org/docs/stable/generated/torch.empty.html#torch.empty
一、torch.tensor与torch.Tensor区别
torch.tensor是一个函数,复制参数data的值,并转化为指定的数据类型,默认是原data的类型。
aa = torch.tensor
bb = torch.tensor((3.,4.))
print(aa.dtye)
print(bb.dtype)
输出
torch.int64
torch.float32
torch.Tensor是一个class类,是torch.FloatTensor的别名,所以可以知道是生成一个dtype是float32的张量,当不指定参数是size时功能与torch.tensor一样。
dd = torch.Tensor((3,4))
ee = torch.Tensor(size = (3,4))
print(dd)
print(ee)
print(dd.dtype)
输出
tensor([3., 4.])
tensor([[1.0561e-38, 8.9082e-39, 9.9184e-39, 8.9082e-39],
[8.9082e-39, 1.0194e-38, 9.1837e-39, 8.4490e-39],
[1.0102e-38, 1.0561e-38, 1.1112e-38, 9.9184e-39]])
torch.float32
二、torch.Tensor与torch.empty
torch.empty作用是根据指定size生成未初始化的张量,功能与torch.Tensor类似,但是可以指定数据类型。
三、总结
torch.tensor只能复制data的值生成张量,数据类型可以指定也可以默认,torch.Tensor能复制data的值,也可以生成指定size的未初始化张量,类型只能是float.32,torch.empty生成指定size的未初始化张量,可以指定数据dtype,所以可以说Tensor是tensor和empty的合体。