torch.nn.utils.skip_init
-
torch.nn.utils.skip_init(module_cls, *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.skip_init.html