Autograd: как PyTorch вычисляет производные

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

Иллюстрация к теме, а не фотография описанного события. Forschungszentrum Jülich · CC BY-SA 4.0. Размер изменён; при показе возможно кадрирование.

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

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

Источники

  1. Официальная документация — Autograd: как PyTorch вычисляет производныеdocs.pytorch.org