
    shD                     4    S SK r SSKJr  S/r " S S\5      rg)    N   )BaseSchedulerLambdaSLc                   6   ^  \ rS rSrSrSU 4S jjrS rSrU =r$ )r   
   a  Sets the sparsity level of each parameter group to the final sl
times a given function. When last_epoch=-1, sets initial sl as zero.
Args:
    sparsifier (BaseSparsifier): Wrapped sparsifier.
    sl_lambda (function or list): A function which computes a multiplicative
        factor given an integer parameter epoch, or a list of such
        functions, one for each group in sparsifier.param_groups.
    last_epoch (int): The index of last epoch. Default: -1.
    verbose (bool): If ``True``, prints a message to stdout for
        each update. Default: ``False``.
Example:
    >>> # Assuming sparsifier has two groups.
    >>> lambda1 = lambda epoch: epoch // 30
    >>> lambda2 = lambda epoch: 0.95 ** epoch
    >>> # xdoctest: +SKIP
    >>> scheduler = LambdaSL(sparsifier, sl_lambda=[lambda1, lambda2])
    >>> for epoch in range(100):
    >>>     train(...)
    >>>     validate(...)
    >>>     scheduler.step()
c                   > Xl         [        U[        5      (       d4  [        U[        5      (       d  U/[	        UR
                  5      -  U l        O_[	        U5      [	        UR
                  5      :w  a-  [        S[	        UR
                  5       S[	        U5       35      e[        U5      U l        [        TU ]%  XU5        g )Nz	Expected z lr_lambdas, but got )

sparsifier
isinstancelisttuplelengroups
sl_lambdas
ValueErrorsuper__init__)selfr	   	sl_lambda
last_epochverbose	__class__s        /Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/torch/ao/pruning/scheduler/lambda_scheduler.pyr   LambdaSL.__init__!   s    $)T**:i3O3O(kC
0A0A,BBDO9~Z%6%6!77 J$5$5 677LSQZ^L\]  #9oDO9    c                     U R                   (       d  [        R                  " S5        [        U R                  U R
                  5       VVs/ s H  u  pX!" U R                  5      -  PM     snn$ s  snnf )NzUTo get the last sparsity level computed by the scheduler, please use `get_last_sl()`.)_get_sl_called_within_stepwarningswarnzipr   base_slr   )r   lmbdar    s      r   get_slLambdaSL.get_sl.   sb    ..MM. #&doot||"D
"D eDOO,,"D
 	
 
s    A/)r   r	   )F)	__name__
__module____qualname____firstlineno____doc__r   r"   __static_attributes____classcell__)r   s   @r   r   r   
   s    ,:	
 	
r   )r   base_schedulerr   __all__r    r   r   <module>r/      s      ) ,-
} -
r   