首页 > 解决方案 > pytorch 中的 torch.Tensor() 与 torch.empty() 有什么区别?

问题描述

我已经尝试过如下。在我看来,它们是一样的。pytorch 中的 torch.Tensor() 与 torch.empty() 有什么区别?

在此处输入图像描述

标签: pythonpytorchtorchtensor

解决方案


torch.Tensor()只是torch.FloatTensor()张量的默认类型的别名,当dtype在张量构造期间指定 no 时。

numpy users notes 的火炬来看,这似乎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]])

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]])

推荐阅读