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

Метод __new__ класса Parameter

Метод __new__ класса Parameter управляет созданием новых экземпляров параметров в PyTorch. В отличие от обычного конструктора __init__, __new__ вызывается до создания объекта и отвечает за выделение памяти и возврат нового экземпляра. Этот метод полезен для кастомизации процесса создания параметров, например, для задания дополнительных атрибутов или проверки переданных данных. Первым параметром метод принимает сам класс, вторым - тензор с данными, а также поддерживает дополнительные аргументы, такие как requires_grad.

Синтаксис

Parameter.__new__(cls, data=None, requires_grad=True)

Пример

Давайте создадим параметр с помощью метода __new__ напрямую:

import torch from torch.nn.parameter import Parameter data = torch.tensor([1., 2., 3., 4., 5.]) param = Parameter.__new__(Parameter, data) print(param)

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

Parameter containing: tensor([1., 2., 3., 4., 5.], requires_grad=True)

Пример

Метод __new__ позволяет создать параметр с отключенным вычислением градиента:

import torch from torch.nn.parameter import Parameter data = torch.tensor([1., 2., 3., 4., 5.]) param = Parameter.__new__(Parameter, data, requires_grad=False) print(param)

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

Parameter containing: tensor([1., 2., 3., 4., 5.], requires_grad=False)

Пример

Использование __new__ при создании пользовательского класса параметров:

import torch from torch.nn.parameter import Parameter class MyParameter(Parameter): def __new__(cls, data, name=None): instance = super().__new__(cls, data) instance.name = name return instance data = torch.tensor([1., 2., 3., 4., 5.]) param = MyParameter(data, "weights") print(param.name) print(param)

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

weights Parameter containing: tensor([1., 2., 3., 4., 5.], requires_grad=True)

Пример

Метод __new__ автоматически вызывается при создании параметра через стандартный конструктор:

import torch from torch.nn.parameter import Parameter param = Parameter(torch.tensor([1., 2., 3., 4., 5.])) print(param)

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

Parameter containing: tensor([1., 2., 3., 4., 5.], requires_grad=True)

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

  • класс Parameter,
    который представляет обучаемый параметр модели
  • метод __new__,
    который управляет созданием экземпляров параметров
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить