介绍
在PyTorch 中,torch.Tensor是主要的tensor类,所有的tensor都是torch.Tensor的实例。torch.Tensor是torch.FloatTensor的别名。
而torch.tensor是一个函数,返回的是一个tensor,在PyTorch官方文档中,描述如下:
torch.tensor(data, dtype=None, device=None, requires_grad=False) → Tensor
Constructs a tensor with data.
区别1
所以需要注意的一点是:
torch.Tensor(data)是将输入的data转化torch.FloatTensortorch.tensor(data):(当你未指定dype的类型时)将data转化为torch.FloatTensor、torch.LongTensor、torch.DoubleTensor等类型,转化类型依据于data的类型或者dtype的值
区别2
使用如下语句:tensor_without_data = torch.Tensor()可以创建一个空的FloatTensor,而当你使用tensor_without_data = torch.tensor()时候则会报错:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-12-ebc3ceaa76d2> in <module>()
----> 1 torch.tensor()
TypeError: tensor() missing 1 required positional arguments: "data"
当你想要创建一个空的tensor时候,可以使用如下的方法:
tensor_without_data = torch.Tensor() # tensor([])tensor_without_data = torch.tensor(()) # tensor([])tensor_without_data = torch.empty([]) # tensor(0.)
所以torch.Tensor应该说是同时具有torch.tensor和torch.empty的功能,但是使用torch.Tensor可能会使你的代码confusing,所以最好还是使用torch.tensor和torch.empty,而不是torch.Tensor。
本文详细解析了PyTorch中torch.Tensor与torch.tensor的使用区别,包括构造空张量的方法及如何根据数据类型自动选择张量类型。
999





