Расчет градиента не отключен в no_grad () PyTorch - PullRequest
0 голосов
/ 13 мая 2019

Почему вычисление градиента y не отключено в следующем фрагменте кода?

x = torch.randn(3, requires_grad=True)
print(x.requires_grad)
print((x ** 2).requires_grad)
y = x**2
print(y.requires_grad)
with torch.no_grad():
    print((x ** 2).requires_grad)
    print(y.requires_grad)

Что дает следующий вывод:

True
True
True
False
True

1 Ответ

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

Изучение официальной документации говорит о том, что результаты будут иметь require_grad=False, хотя входные данные имеют required_grad=True

Отключение вычисления градиента полезно для вывода, когда вы уверены, что не будетеЗвоните: мет: Tensor.backward().Это уменьшит потребление памяти для вычислений, которые в противном случае имели бы requires_grad=True.В этом режиме результат каждого вычисления будет иметь requires_grad=False, даже если входные данные имеют requires_grad=True.

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