[英]what's the difference between torch.Tensor() vs torch.empty() in pytorch?
torch.Tensor()
僅僅是一個別名torch.FloatTensor()
這是張量的默認類型,當沒有dtype
張量施工期間指定。
從numpy 用戶筆記的火炬中,似乎torch.Tensor()
是numpy.empty()
替代品
因此,本質上torch.FloatTensor()
和torch.empty()
執行相同的工作,即返回填充有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]])
快速回答: torch.empty() 創建任何你想要的數據類型的張量,torch.Tensor() 只創建類型為 torch.FloatTensor 的張量。 所以 torch.Tensor() 是 torch.empty() 的特例
詳細解答:
torch.empty() 返回一個填充了未初始化數據的張量。 使用參數,您可以指定張量的形狀、輸出張量、數據類型... (請參閱 tensor.empty() 文檔)
這意味着您可以創建一個浮點數張量,int...如果沒有指定數據類型,那么所選的類型是您的默認torch.Tensor類型(默認情況下是 torch.FloatTensor,您可以使用torch.set_default_tensor_type()更改它)
torch.Tensor() 只是 torch.empty() 的特例,其中數據類型為 torch.FloatTensor。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.