Вычисление градиента ошибки и обратного распространения ошибки играет крайне важную роль в машинном обучении. Без автоматического вычисления градиента нам бы пришлось вручную вычислять производные в порой крайне сложных функциях. Рассмотрим функцию simple_gradient из всё того же примера от pytorch. Для того, чтобы иметь возможность высчитывать автоматически градиент нашей функции, нам необходимо обернуть в переменный класс (Variable) нашу функцию и указать в ней, что этой функции требуется градиент (requires_grad). По итогу мы получим примерно такой код. x = Variable(torch.ones(2, 2) * 2, requires_grad=True) Создадим ещё одну функцию, например z = 2 * (x * x) + 5 * x Не трудно догадаться, что производной для второй функции будет 4 * x + 5 Но запустим операцию обратного распространения (backward) относительно обычного тензора 2*2 заполненного единицами. z.backward(torch.ones(2, 2)) Ну а теперь вычислим градиент print(x.grad) По итогу мы получим такой ответ Variable containing:
13 1