torch.nn.utils.init.skip_init
-
torch.nn.utils.init.skip_init(module_cls, *args, **kwargs)[исходный код] -
Получив объект класса модуля и аргументы args / kwargs, создает экземпляр модуля без инициализации параметров / буферов.
Это может быть полезно, если инициализация выполняется медленно или если будет выполняться пользовательская инициализация, из-за чего стандартная инициализация не нужна. Однако у этого подхода есть некоторые ограничения, обусловленные особенностями реализации данной функции:
1. Конструктор модуля должен принимать аргумент
device, который передается всем параметрам или буферам, создаваемым при конструировании.2. Конструктор модуля не должен выполнять никаких операций над параметрами, кроме инициализации (то есть функций из
torch.nn.init).Если эти условия соблюдены, экземпляр модуля можно создать с неинициализированными значениями параметров / буферов, как если бы он был создан с помощью
torch.empty().- Параметры:
-
-
module_cls – Объект класса; должен быть подклассом
torch.nn.Module - args – аргументы, передаваемые конструктору модуля
- kwargs – именованные аргументы, передаваемые конструктору модуля
-
module_cls – Объект класса; должен быть подклассом
- Возвращает:
-
Созданный экземпляр модуля с неинициализированными параметрами / буферами
Пример:
>>> 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)
© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.nn.utils.init.skip_init.html