Градиент без записи в поле в PyTorch
Функция grad из модуля
autograd считает производную
по выбранным тензорам и возвращает
её списком. В поле grad
исходных аргументов ничего
не появляется.
Построим квадрат дробного аргумента с записью градиента и запросим производную по нему:
import torch
x = torch.tensor(3.0, requires_grad=True)
y = x * x
g = torch.autograd.grad(y, x)
print(g[0]) # выведет tensor(6.)
После такого запроса поле градиента у аргумента по-прежнему пустое:
import torch
x = torch.tensor(3.0, requires_grad=True)
y = x * x
torch.autograd.grad(y, x)
print(x.grad is None) # выведет True
Для дробного 5.0 с записью
постройте куб значения, запросите
производную по аргументу
и выведите первый элемент
результата.
Для дробного 2.0 с записью
сложите аргумент с единицей,
запросите градиент по аргументу
и выведите поле градиента
у аргумента.
Для двух дробных 1.0
и 4.0 с записью перемножьте
их, запросите частные производные
по обоим и выведите оба
значения из списка ответа.