pytorch grad = None после .backward () - PullRequest
       5

pytorch grad = None после .backward ()

0 голосов
/ 11 января 2019

Я только что установил torch-1.0.0 на Python 3.7.2 (macOS) и пробовал учебник , но следующий код:

import torch
x = torch.ones(2, 2, requires_grad=True)
y = x + 2
z = y * y * 3
out = z.mean()
out.backward()
print(out.grad)

печатает None что не соответствует ожиданиям.

В чем проблема?

1 Ответ

0 голосов
/ 11 января 2019

Это ожидаемый результат.

.backward накапливают градиент только в листовых узлах. out не является листовым узлом, следовательно, grad - это None.

autograd.backward тоже самое делает

autograd.grad можно использовать для нахождения градиента любого тензора относительно любого тензора. Так что если вы сделаете autograd.grad (out, out), вы получите (tensor(1.),) в качестве результата, который соответствует ожидаемому

Ref

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