Spec-Zone.ru › PyTorch 2

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 – ключевые аргументы для передачи в конструктор модуля
Возвращает

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

Пример:

>>> 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

Spec-Zone.ru

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