
    RЦiq                     N    S r SSKrSSKrSSKJrJrJr  SSKJr   " S S\5      r	g)znStep Scheduler

Basic step LR schedule with warmup, noise.

Hacked together by / Copyright 2020 Ross Wightman
    N)ListTupleUnion   )	Schedulerc                      ^  \ rS rSrSr          SS\R                  R                  S\S\S\	S\S	\
S
\
S\\\	   \\	\	4   \	S4   S\S\S\	S\
SS4U 4S jjjrS\	S\\   4S jrSrU =r$ )StepLRScheduler   z
    N	optimizerdecay_t
decay_ratewarmup_twarmup_lr_initwarmup_prefixt_in_epochsnoise_range_t	noise_pct	noise_std
noise_seed
initializereturnc                 z  > [         TU ]  USUUU	U
UUS9  X l        X0l        X@l        XPl        X`l        U R                  (       aK  U R                   Vs/ s H  oU-
  U R                  -  PM     snU l        [         TU ]%  U R
                  5        g U R                   Vs/ s H  nSPM     snU l        g s  snf s  snf )Nlr)param_group_fieldr   r   r   r   r   r   r   )
super__init__r   r   r   r   r   base_valueswarmup_stepsupdate_groups)selfr   r   r   r   r   r   r   r   r   r   r   r   v_	__class__s                  U/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/timm/scheduler/step_lr.pyr   StepLRScheduler.__init__   s     	"#'!! 	 		
 $ ,*==OSO_O_ `O_!n"4!EO_ `DG!$"5"56,0,<,< =,<q,< =D !a !>s   B3B8tc                 <   XR                   :  a,  U R                   Vs/ s H  o R                  X-  -   PM     nnU$ U R                  (       a  XR                   -
  nU R                   Vs/ s H   oDU R
                  XR                  -  -  -  PM"     nnU$ s  snf s  snf )N)r   r   r   r   r   r   r   )r    r&   slrsr!   s        r$   _get_lrStepLRScheduler._get_lr8   s    }}8<8I8IJ8I1&&.8ICJ
 
 !!%IMIYIYZIYAA,=>?IYCZ
 K [s   B)'B)r   r   r   r   r   r   )
      ?r   g        TTNgq=
ףp?r,   *   T)__name__
__module____qualname____firstlineno____doc__torchoptim	Optimizerfloatintboolr   r   r   r   r*   __static_attributes____classcell__)r#   s   @r$   r	   r	      s     !#$&"& $JN#" ##>{{,,#> #> 	#>
 #> "#>  #> #> !cE#s(OS$!FG#> #> #> #> #> 
#> #>J e      r	   )
r2   mathr3   typingr   r   r   	schedulerr   r	    r;   r$   <module>r@      s)      % % !0i 0r;   