torch.nn.utils.skip_init
-
torch.nn.utils.skip_init(module_cls, *args, **kwargs)[source] -
Указав класс модуля и аргументы/ключевые аргументы, создаёт экземпляр модуля без инициализации параметров/буферов. Это может быть полезно, если инициализация медленная или если будет выполнена пользовательская инициализация, делая стандартную инициализацию ненужной. Существуют некоторые оговорки из-за того, как реализована эта функция:
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)
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/2.1/generated/torch.nn.utils.skip_init.html