В чем разница между суммой и torch.sum для факела Тензор? - PullRequest
0 голосов
/ 18 марта 2019

Я получаю те же результаты, когда использую python sum или torch.sum, так почему же torch реализовал функцию sum?Есть ли разница между ними?

Ответы [ 2 ]

0 голосов
/ 03 мая 2019

Похоже, что сумма питона может принимать в качестве входных данных генераторы, тогда как torch.sum не может:

import torch
print( sum( torch.ones(1)*k for k in torch.arange(10)))
возвращает tensor([45.]), тогда как:

print( torch.sum( torch.ones(1)*k for k in torch.arange(10)))
повышает TypeError: sum(): argument 'input' (position 1) must be Tensor, not generator

Я предполагаю, что обратное распространение pyTorch может привести к проблемам с ленивой оценкой генератора, но пока не уверен в этом.

0 голосов
/ 19 марта 2019

ничто, torch.sum звонит tensor.sum и Python sum звонит __add__ (или __radd__ при необходимости), что вызывает tensor.sum снова

, поэтому единственная разница заключается в количествевызовы функций, и tensor.sum() должен быть самым быстрым (когда у вас маленькие тензоры и значительная нагрузка на вызов функции)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...