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

Атрибут data

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

Синтаксис

tensor.data

Атрибут возвращает тот же тензор, но с отключенным отслеживанием истории градиентов.

Пример

Рассмотрим базовое использование атрибута data:

import torch t = torch.tensor([1, 2, 3, 4, 5], requires_grad=True) t_data = t.data print(t_data)

Результат выполнения кода:

tensor([1, 2, 3, 4, 5])

Как видно из примера, data возвращает тот же тензор, но без свойства requires_grad.

Пример

Продемонстрируем проблему использования data с градиентами:

import torch t = torch.tensor([1, 2, 3, 4, 5], requires_grad=True) res = t * 2 res.sum().backward() t.data = torch.tensor([10, 20, 30, 40, 50]) print(t.grad)

Результат выполнения кода:

tensor([2., 2., 2., 2., 2.])

Несмотря на изменение данных через data, градиенты остались от исходного тензора, что может привести к ошибкам.

Пример

Вместо data рекомендуется использовать метод detach для безопасного отключения от графа вычислений:

import torch t = torch.tensor([1, 2, 3, 4, 5], requires_grad=True) t_detached = t.detach() print(t_detached.requires_grad)

Результат выполнения кода:

False

Метод detach создает новый тензор, который не требует градиентов, но при этом изменения в нем не влияют на исходный тензор.

Смотрите также

  • атрибут grad,
    который хранит градиенты тензора
  • атрибут requires_grad,
    который определяет, нужны ли градиенты для тензора
  • метод detach,
    который отключает тензор от графа вычислений
  • метод clone,
    который создает глубокую копию тензора
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить