Отключение записи в PyTorch
Если градиент не нужен, вычисления
выполняют внутри блока no_grad.
Тогда результат не запоминает
граф операций. Сравним умножение
внутри блока и снаружи:
import torch
x = torch.tensor(2.0, requires_grad=True)
with torch.no_grad():
inside = x * 3
outside = x * 3
print(inside.requires_grad) # выведет False
print(outside.requires_grad) # выведет True
Сам исходный тензор с записью не меняется: у него флаг записи остаётся включённым:
import torch
x = torch.tensor(1.0, requires_grad=True)
with torch.no_grad():
z = x + 1
print(x.requires_grad) # выведет True
Соберите дробное 3.0
с записью, внутри блока без
записи прибавьте 1
и выведите флаг записи
у получившегося числа.
Для дробного 2.0 с записью
умножьте его на 5
внутри блока без записи
и снаружи. Выведите оба
флага записи у результатов.
Возьмите дробное 0.5
с записью, выполните сложение
с 0.5 внутри блока
без записи и выведите,
что у суммы запись выключена.