Rate this Page

torch.nn.utils.skip_init#

torch.nn.utils.skip_init(module_cls,*args,**kwargs)[source]#

Given a module class object and args / kwargs, instantiate the module without initializing parameters / buffers.

This can be useful if initialization is slow or if custom initialization willbe performed, making the default initialization unnecessary. There are some caveats to this, due tothe way this function is implemented:

1. The module must accept adevice arg in its constructor that is passed to any parametersor buffers created during construction.

2. The module must not perform any computation on parameters in its constructor exceptinitialization (i.e. functions fromtorch.nn.init).

If these conditions are satisfied, the module can be instantiated with parameter / buffer valuesuninitialized, as if having been created usingtorch.empty().

Parameters
  • module_cls – Class object; should be a subclass oftorch.nn.Module

  • args – args to pass to the module’s constructor

  • kwargs – kwargs to pass to the module’s constructor

Returns

Instantiated module with uninitialized parameters / buffers

Example:

>>>importtorch>>>m=torch.nn.utils.skip_init(torch.nn.Linear,5,1)>>>m.weightParameter 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.weightParameter containing:tensor([[-1.4677e+24,  4.5915e-41,  1.4013e-45,  0.0000e+00, -1.4677e+24,          4.5915e-41]], requires_grad=True)