credit.ensemble.bred_vector
===========================

.. py:module:: credit.ensemble.bred_vector


Attributes
----------

.. autoapisummary::

   credit.ensemble.bred_vector.logger


Functions
---------

.. autoapisummary::

   credit.ensemble.bred_vector.generate_bred_vectors
   credit.ensemble.bred_vector.generate_bred_vectors_cycle
   credit.ensemble.bred_vector.clone_dataset
   credit.ensemble.bred_vector.adjust_start_times


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

.. py:function:: generate_bred_vectors(x_batch, model, num_cycles=5, perturbation_std=0.15, epsilon=1.0, flag_clamp=False, clamp_min=None, clamp_max=None)

   Generate bred vectors and initialize initial conditions for the given batch.

   :param x_batch: The input batch.
   :type x_batch: torch.Tensor
   :param batch: A dictionary containing additional batch data.
   :type batch: dict
   :param model: The model used for predictions.
   :type model: nn.Module
   :param num_cycles: Number of perturbation cycles.
   :type num_cycles: int
   :param perturbation_std: Magnitude of initial perturbations.
   :type perturbation_std: float
   :param epsilon: Scaling factor for bred vectors.
   :type epsilon: float
   :param flag_clamp: Whether to clamp inputs. Defaults to False.
   :type flag_clamp: bool, optional
   :param clamp_min: Minimum clamp value. Required if flag_clamp is True.
   :type clamp_min: float, optional
   :param clamp_max: Maximum clamp value. Required if flag_clamp is True.
   :type clamp_max: float, optional

   :returns: List of initial conditions generated using bred vectors.
   :rtype: list[torch.Tensor]


.. py:function:: generate_bred_vectors_cycle(initial_condition, dataset, model, num_cycles=5, perturbation_std=0.15, epsilon=1.0, flag_clamp=False, clamp_min=None, clamp_max=None, device='cuda', history_len=1, varnum_diag=None, static_dim_size=None, post_conf={})

   Generate bred vectors and initialize initial conditions for the given batch.

   :param x_batch: The input batch.
   :type x_batch: torch.Tensor
   :param batch: A dictionary containing additional batch data.
   :type batch: dict
   :param model: The model used for predictions.
   :type model: nn.Module
   :param num_cycles: Number of perturbation cycles.
   :type num_cycles: int
   :param perturbation_std: Magnitude of initial perturbations.
   :type perturbation_std: float
   :param epsilon: Scaling factor for bred vectors.
   :type epsilon: float
   :param flag_clamp: Whether to clamp inputs. Defaults to False.
   :type flag_clamp: bool, optional
   :param clamp_min: Minimum clamp value. Required if flag_clamp is True.
   :type clamp_min: float, optional
   :param clamp_max: Maximum clamp value. Required if flag_clamp is True.
   :type clamp_max: float, optional

   :returns: List of initial conditions generated using bred vectors.
   :rtype: list[torch.Tensor]


.. py:function:: clone_dataset(dataset)

   Clones a PyTorch Dataset by creating a deep copy.

   :param dataset: The original dataset.
   :type dataset: torch.utils.data.Dataset

   :returns: A cloned dataset.
   :rtype: torch.utils.data.Dataset


.. py:function:: adjust_start_times(time_ranges, hours=24)

   Adjusts the start times by subtracting 24 hours.

   :param time_ranges: Each sublist contains [start_time, end_time] as strings.
   :type time_ranges: list of lists

   :returns: Adjusted time ranges [[start_time - 24hrs, start_time], ...]
   :rtype: list of lists


.. py:data:: logger

