credit.models.wxformer.stochastic_decomposition_layer
=====================================================

.. py:module:: credit.models.wxformer.stochastic_decomposition_layer


Attributes
----------

.. autoapisummary::

   credit.models.wxformer.stochastic_decomposition_layer.logger


Classes
-------

.. autoapisummary::

   credit.models.wxformer.stochastic_decomposition_layer.StochasticDecompositionLayer


Functions
---------

.. autoapisummary::

   credit.models.wxformer.stochastic_decomposition_layer.scale_sdl_noise


Module Contents
---------------

.. py:data:: logger

.. py:class:: StochasticDecompositionLayer(noise_dim, feature_channels, noise_factor=0.1)

   Bases: :py:obj:`torch.nn.Module`


   A module that injects noise into feature maps, with a per-pixel and per-channel style modulation.

   :ivar noise_transform: A linear transformation to map latent noise to the feature map's channels.
   :vartype noise_transform: nn.Linear
   :ivar modulation: A learnable scaling factor applied to the noise.
   :vartype modulation: nn.Parameter
   :ivar noise_factor: A scaling factor for controlling the intensity of the injected noise.

   :vartype noise_factor: float


   .. py:attribute:: noise_transform


   .. py:attribute:: modulation


   .. py:attribute:: noise_factor


   .. py:method:: forward(feature_map, noise)

      Injects noise into the feature map.

      :param feature_map: The input feature map (batch, channels, height, width).
      :type feature_map: torch.Tensor
      :param noise: The latent noise tensor (batch, noise_dim), used for modulating the injected noise.
      :type noise: torch.Tensor

      :returns: The feature map with injected noise.
      :rtype: torch.Tensor



.. py:function:: scale_sdl_noise(model: torch.nn.Module, noise_scale: Optional[float]) -> int

   Multiply every StochasticDecompositionLayer ``noise_factor`` in ``model`` by ``noise_scale``, in place.

   ``noise_scale: 0.0`` collapses an SDL ensemble model to its deterministic mean;
   ``None`` or ``1.0`` leaves the trained noise amplitude unchanged.

   :param model: Model to modify (may be wrapped; all submodules are searched).
   :param noise_scale: Factor applied to each layer's noise amplitude.

   :returns: Number of SDL layers scaled (0 for a no-op).
   :rtype: int


