Autograd: как PyTorch вычисляет производные
Автоматическое дифференцирование позволяет получать градиенты для обучения нейросети.

Когда для тензоров включено отслеживание градиентов, PyTorch строит вычислительный граф выполняемых операций. по завершении вычисления функции потерь обратный проход даёт производные по участвующим параметрам. Оптимизатор использует эти значения для изменения весов модели.
Градиент показывает локальное изменение функции, а не качество решения в реальной задаче. Отдельно нужны проверочные данные и подходящая метрика. Во время работы с моделью также различают обучение и применение: хранение графа требуется не во всех сценариях. Это помогает избежать лишнего расхода памяти там, где нужен только готовый результат.