Когда вы используете torch.tensor
для y
, он просто использует значения x
для инициализации тензора, цепочка градиента теряется.
Это работает:
x = torch.tensor([1., 2., ], requires_grad=True)
y = [x[0] + x[1], x[1] - x[0], ]
z = y[0] + y[1]
z.backward()
x.grad
Результат tensor([0., 2.])