Режим вывода в PyTorch
На этапе чистого вывода граф
автограда не нужен. Функция
inference_mode задаёт
режим вывода: внутри блока
новые тензоры не участвуют
в графе автограда, даже если
у исходных включена запись
градиента.
Блок оформляют через конструкцию
with. Проверим на простом
умножении:
import torch
x = torch.tensor(1.0, requires_grad=True)
with torch.inference_mode():
y = x * 2
print(y.requires_grad) # выведет False
Вне блока обычное действие с тем же аргументом снова включает тензор в граф:
import torch
x = torch.tensor(1.0, requires_grad=True)
y = x * 2
print(y.requires_grad) # выведет True
Создайте дробный тензор
2.0 с записью градиента,
внутри режима вывода сложите
его с единицей и выведите
признак записи градиента
у результата.
Для 3.0 с записью
сначала умножьте на два
внутри режима вывода,
затем вне блока умножьте
тот же аргумент на три
и выведите признак записи
градиента у второго
результата.
Соберите таблицу из двух
рядов [[1.0, 2.0], [3.0, 4.0]]
с записью градиента и внутри
режима вывода сложите её
с единицей. Выведите
признак записи градиента
у итога.