
    9i                     z    S SK r S SKrS SKJr  S SKJr  S SKJrJrJ	r	  \" S5      r
S
S\S\4S jjrS	 r\" 5         g)    N)version)
ConfigDict)Registrybuild_from_cfgdefault_grouplr_schedulercfgdefault_argsc                    U S   R                  5       R                  S5      (       a&  [        U S5      (       d  Ub  SU;  a  [        S5      eO%[        U S5      (       d  Ub  SU;  a  [        S5      e[	        U [
        [        US9$ )zbuild lr scheduler from given lr scheduler config dict

Args:
    cfg (:obj:`ConfigDict`): config dict for lr scheduler object.
    default_args (dict, optional): Default initialization arguments.
typewarmupbase_schedulerzMust provide ``base_scheduler`` which is an instance of ``torch.optim.lr_scheduler._LRScheduler`` for build warmup lr scheduler.	optimizerzcMust provide ``optimizer`` which is an instance of ``torch.optim.Optimizer`` for build lr scheduler)	group_keyr
   )lowerendswithhasattr
ValueErrorr   LR_SCHEDULERr   )r	   r
   s     g/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/modelscope/trainers/lrscheduler/builder.pybuild_lr_schedulerr      s     6{##H--s,--#(8(L 56 6
 sK((#<(G -. . \]O O    c                  p   SSK Jn   [        R                  " [        R
                  5      [        R                  " S5      :  a  SSKJn  OSSKJn  [        R                  " U 5      nU HK  u  p4[        R                  " U5      (       a  [        XA5      (       d  US;   d  M8  [        R                  X4S9  MM     g )Nr   )r   z	2.0.0.dev)_LRScheduler)LRScheduler)ReduceLROnPlateau)module_name
module_cls)torch.optimr   r   parsetorch__version__torch.optim.lr_schedulerr   r   inspect
getmembersisclass
issubclassr   register_module)r   r   membersnameobjs        r   register_torch_lr_schedulerr,   '   s    (}}U&&''--*DD9H  .G	OOC  Z&# &#'+/D'D((T(J r   )N)r$   r!   	packagingr   modelscope.utils.configr   modelscope.utils.registryr   r   r   r   dictr   r,    r   r   <module>r2      sE       . M M'OJ Od O4K  r   