Spec-Zone.ru › PyTorch 1

torch.nn.utils.skip_init

torch.nn.utils.skip_init(module_cls, *args, **kwargs) [source]

Принимая во внимание класс модуля и args / kwargs, создаёт экземпляр модуля без инициализации параметров/буферов. Это может быть полезно, если инициализация медленная или если будет выполнена пользовательская инициализация, что делает стандартную инициализацию неважной. Есть некоторые нюансы, связанные с реализацией этой функции:

1. Модуль должен принимать device аргумент в своём конструкторе, который передаётся любым параметрам или буферам, созданным во время построения.

2. Модуль не должен выполнять вычисления над параметрами в своём конструкторе, кроме инициализации (т.е. функций из torch.nn.init).

Если эти условия соблюдены, модуль можно создать с неинициализированными значениями параметров/буферов, как если бы он был создан с помощью torch.empty().

Параметры:
  • module_cls – Объект класса; должен быть подклассом torch.nn.Module
  • args – args, которые необходимо передать в конструктор модуля
  • kwargs – kwargs, которые необходимо передать в конструктор модуля
Возвращаемое значение:

Созданный модуль с неинициализированными параметрами/буферами

Пример:

>>> import torch
>>> m = torch.nn.utils.skip_init(torch.nn.Linear, 5, 1)
>>> m.weight
Parameter containing:
tensor([[0.0000e+00, 1.5846e+29, 7.8307e+00, 2.5250e-29, 1.1210e-44]],
       requires_grad=True)
>>> m2 = torch.nn.utils.skip_init(torch.nn.Linear, in_features=6, out_features=1)
>>> m2.weight
Parameter containing:
tensor([[-1.4677e+24,  4.5915e-41,  1.4013e-45,  0.0000e+00, -1.4677e+24,
          4.5915e-41]], requires_grad=True)

© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/1.13/generated/torch.nn.utils.skip_init.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API