Shortcuts

torch.nn.utils.stateless.functional_call

torch.nn.utils.stateless.functional_call(module, parameters_and_buffers, args, kwargs=None)[source]

Performs a functional call on the module by replacing the module parameters and buffers with the provided ones.

Note

If the module has active parametrizations, passing a value in the parameters_and_buffers argument with the name set to the regular parameter name will completely disable the parametrization. If you want to apply the parametrization function to the value passed please set the key as {submodule_name}.parametrizations.{parameter_name}.original.

Note

If the module performs in-place operations on parameters/buffers, these will be reflected in the parameters_and_buffers input.

Example:

>>> a = {'foo': torch.zeros(())}
>>> mod = Foo()  # does self.foo = self.foo + 1
>>> print(mod.foo)  # tensor(0.)
>>> functional_call(mod, a, torch.ones(()))
>>> print(mod.foo)  # tensor(0.)
>>> print(a['foo'])  # tensor(1.)
Parameters
  • module (torch.nn.Module) – the module to call

  • parameters_and_buffers (dict of str and Tensor) – the parameters that will be used in the module call.

  • args (tuple) – arguments to be passed to the module call

  • kwargs (dict) – keyword arguments to be passed to the module call

Returns

the result of calling module.

Return type

Any

Docs

Access comprehensive developer documentation for PyTorch

View Docs

Tutorials

Get in-depth tutorials for beginners and advanced developers

View Tutorials

Resources

Find development resources and get your questions answered

View Resources