Автоград в PyTorch
При обучении сети нужно менять веса так, чтобы ошибка уменьшалась. Для этого смотрят, как сильно каждое число влияет на результат - ищут градиент. Считать его вручную для длинной цепочки операций неудобно.
Библиотека сама запоминает, какие действия выполнялись над тензорами, если для них включена запись. Потом по этой цепочке можно сделать обратный проход и получить градиенты для нужных величин.
Градиент читают из специального поля тензора, а перед новым шагом обучения его обнуляют, чтобы старые значения не накапливались. Иногда запись временно отключают, когда градиент не нужен. Отдельно тензор можно отцепить от графа, оставив те же числа в ячейках.
Со всем этим мы и будем разбираться в рамках данного раздела.