РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗pytoPmAgZr 61 of 95 menu
◀ ▶

Обнуление градиента в PyTorch

Без обнуления поля повторный обратный проход складывает новый градиент с тем, что уже лежит в атрибуте grad. Перед новым шагом поле обнуляют, присвоив ему значение None:

import torch w = torch.tensor(2.0, requires_grad=True) y = w * w y.backward() print(w.grad) # выведет tensor(4.) w.grad = None print(w.grad is None) # выведет True

Если не обнулить градиент, второй обратный проход по новому выражению с тем же весом добавит значение к прежнему:

import torch w = torch.tensor(2.0, requires_grad=True) y = w * w y.backward() print(w.grad) # выведет tensor(4.) y = w * w y.backward() print(w.grad) # выведет tensor(8.) w.grad = None y = w * w y.backward() print(w.grad) # выведет tensor(4.)

Для дробного 3.0 с записью дважды подряд найдите квадрат и каждый раз выполните обратный проход, не очищая поле градиента. Выведите градиент после второго прохода.

Для дробного 3.0 с записью найдите квадрат и обратный проход, затем присвойте полю градиента пустое значение и выведите, что оно снова пустое.

Для дробного 2.0 с записью сделайте два обратных прохода по квадрату без очистки, затем очистите градиент, снова постройте квадрат и один обратный проход. Выведите итоговый градиент.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить