Python 什么';pytorch中torch.Tensor()和torch.empty()的区别是什么?

Python 什么';pytorch中torch.Tensor()和torch.empty()的区别是什么?,python,pytorch,torch,tensor,Python,Pytorch,Torch,Tensor,我已经试过了,如下所示。在我看来他们是一样的。pytorch中torch.Tensor()和torch.empty()有什么区别 这是张量的默认类型,在张量构造期间未指定dtype 从中可以看出,torch.Tensor()似乎是numpy.empty() 因此,本质上,torch.FloatTensor()和torch.empty()执行相同的任务,返回一个填充了dtypetorch.float32垃圾值的张量。下面是一个小跑步: In [87]: torch.FloatTensor(2, 3

我已经试过了,如下所示。在我看来他们是一样的。pytorch中torch.Tensor()和torch.empty()有什么区别

这是张量的默认类型,在张量构造期间未指定
dtype

从中可以看出,
torch.Tensor()
似乎是
numpy.empty()

因此,本质上,
torch.FloatTensor()
torch.empty()
执行相同的任务,返回一个填充了dtype
torch.float32
垃圾值的张量。下面是一个小跑步:

In [87]: torch.FloatTensor(2, 3)
Out[87]: 
tensor([[-1.0049e+08,  4.5688e-41, -8.9389e-38],
        [ 3.0638e-41,  4.4842e-44,  0.0000e+00]])

In [88]: torch.FloatTensor(2, 3)
Out[88]: 
tensor([[-1.0049e+08,  4.5688e-41, -1.6512e-38],
        [ 3.0638e-41,  4.4842e-44,  0.0000e+00]])

快速回答: torch.empty()使用您想要的任何数据类型创建张量,torch.tensor()只创建torch.FloatTensor类型的张量。 所以torch.Tensor()是torch.empty()的特例

详细答案:

empty()返回一个充满未初始化数据的张量。使用参数可以指定张量的形状、输出张量、数据类型

这意味着您可以创建一个浮点张量,int。。。如果未指定数据类型,则所选类型为默认的torch.Tensor类型(默认为torch.FloatTensor,您可以使用更改)


torch.Tensor()只是torch.empty()的一个特例,其中数据类型为torch.FloatTensor。

我试图用Tensor.Tensor创建一个张量,但出现了错误。请看下面的帖子。值得一提的是,它为
火炬打印零。空的
不是真的。
In [89]: torch.empty(2, 3)
Out[89]: 
tensor([[-1.0049e+08,  4.5688e-41, -9.0400e-38],
        [ 3.0638e-41,  4.4842e-44,  0.0000e+00]])

In [90]: torch.empty(2, 3)
Out[90]: 
tensor([[-1.0049e+08,  4.5688e-41, -9.2852e-38],
        [ 3.0638e-41,  4.4842e-44,  0.0000e+00]])