Отцепление от графа в PyTorch
Отцепить тензор от графа помогает
метод detach. Он возвращает
новый тензор с теми же числами,
но без связи с графом. У отцеплённого
значения атрибут записи становится
ложным:
import torch
x = torch.tensor(2.0, requires_grad=True)
y = x * x
z = y.detach()
print(z.requires_grad) # выведет False
print(y.requires_grad) # выведет True
Ячейки совпадают с исходным результатом формулы, меняется только участие в обратном проходе. Проверим равенство чисел:
import torch
x = torch.tensor(3.0, requires_grad=True)
y = x * x
z = y.detach()
print(z.item()) # выведет 9.0
print(y.item()) # выведет 9.0
Для дробного 4.0 с записью
постройте квадрат, отцепите
результат от графа и выведите
флаг записи у отцеплённого
тензора.
Возьмите дробное 2.5
с записью, умножьте на себя,
отцепите произведение и выведите
значение в ячейке отцеплённого
тензора.
Для дробного 1.0 с записью
сложите число с самим собой,
отцепите сумму и выведите
False или True:
запись у отцеплённого результата
выключена.