artist.optim.training ===================== .. py:module:: artist.optim.training Classes ------- .. autoapisummary:: artist.optim.training.EarlyStopping Functions --------- .. autoapisummary:: artist.optim.training.exponential artist.optim.training.cyclic artist.optim.training.reduce_on_plateau Module Contents --------------- .. py:function:: exponential(optimizer: torch.optim.Optimizer, parameters: dict[str, float]) -> torch.optim.lr_scheduler.LRScheduler Create an exponential learning rate scheduler. Parameters ---------- optimizer : Optimizer The optimizer. parameters : dict[str, float] The scheduler parameters. Returns ------- LRScheduler An exponential learning rate scheduler. .. py:function:: cyclic(optimizer: torch.optim.Optimizer, parameters: dict[str, float]) -> torch.optim.lr_scheduler.LRScheduler Create a cyclic learning rate scheduler. Parameters ---------- optimizer : Optimizer The optimizer. parameters : dict[str, float] The scheduler parameters. Returns ------- LRScheduler A cyclic learning rate scheduler. .. py:function:: reduce_on_plateau(optimizer: torch.optim.Optimizer, parameters: dict[str, float]) -> torch.optim.lr_scheduler.LRScheduler Create learning rate scheduler that reduces on plateaus. Parameters ---------- optimizer : Optimizer The optimizer. parameters : dict[str, float] The scheduler parameters. Returns ------- LRScheduler A learning rate scheduler that reduces on plateaus. .. py:class:: EarlyStopping(window_size: int = 10, patience: int = 20, min_improvement: float = 0.0001, relative: bool = True, eps: float = 1e-08) Initialize the early stopping. Parameters ---------- window_size : int Number of epochs used to estimate loss trend (default is 10). patience : int Number of consecutive non-improving windows before stopping (default is 20). min_improvement : float Minimum required improvement over the window to reset patience (default is 1e-4). relative : bool Indicates whether improvement is normalized by loss magnitude (default is True). eps : float Small value for stability (default is 1e-8). .. py:attribute:: window_size :value: 10 .. py:attribute:: patience :value: 20 .. py:attribute:: min_improvement :value: 0.0001 .. py:attribute:: relative :value: True .. py:attribute:: eps :value: 1e-08 .. py:attribute:: loss_history :type: Deque[float] .. py:attribute:: counter :value: 0 .. py:method:: step(loss: float) -> bool Update stopping state. Parameters ---------- loss : float Current loss value. Returns ------- bool True if optimization should stop, otherwise False.