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, которые необходимо передать в конструктор модуля
-
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)
© 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