В чем разница между torch.Tensor () и torch.empty () в pytorch? - PullRequest
0 голосов
/ 02 июля 2018

Я опробовал это, как показано ниже. Мне кажется, они одинаковы. В чем разница между torch.Tensor () и torch.empty () в pytorch?

enter image description here

Ответы [ 2 ]

0 голосов
/ 14 ноября 2018

Быстрый ответ: torch.empty () создает тензор с любым типом данных, который вы хотите, torch.Tensor () создает только тензоры типа torch.FloatTensor. Так что torch.Tensor () является частным случаем torch.empty ()

Подробный ответ:

torch.empty () возвращает тензор, заполненный неинициализированными данными. С помощью аргументов вы можете указать форму тензора, выходной тензор, тип данных ... (см. Документацию tenor.empty ())

Это означает, что вы можете создать тензор с плавающей запятой, int ... Если тип данных не указан, то выбранным является ваш тип по умолчанию torch.Tensor (который по умолчанию является torch.FloatTensor и вы можете изменить его, используя torch.set_default_tensor_type () )

torch.Tensor () - это просто особый случай torch.empty (), где тип данных - torch.FloatTensor.

0 голосов
/ 02 июля 2018

torch.Tensor() - это просто псевдоним torch.FloatTensor(), который является типом тензора по умолчанию, если во время построения тензора не указано dtype.

* * * * * * * * * * * * * * * * * * * * * * * * * * * *1001* * * * * * * * * * * * * * * * *1001* * * *] * * * * * * * torch.Tensor() *1010*.

Итак, по сути 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]])
...