o
    i                     @   s   d dl mZ d dl mZ d dlm  mZ G dd deZG dd deZG dd	 d	eZ	G d
d de	Z
e
ej ejejejejejejejfD ]Ze	e qKeej ejejfD ]Zee q_dS )    )ABC)abstractmethodNc                   @   8   e Zd Zed	defddZedd Zedd ZdS )
AbsSchedulerNepochc                 C      d S N selfr   r	   r	   S/home/ubuntu/.local/lib/python3.10/site-packages/funasr/schedulers/abs_scheduler.pystep      zAbsScheduler.stepc                 C   r   r   r	   r   r	   r	   r   
state_dict   r   zAbsScheduler.state_dictc                 C   r   r   r	   r   stater	   r	   r   load_state_dict   r   zAbsScheduler.load_state_dictr   __name__
__module____qualname__r   intr   r   r   r	   r	   r	   r   r          
r   c                   @   r   )
AbsBatchStepSchedulerNr   c                 C   r   r   r	   r
   r	   r	   r   r      r   zAbsBatchStepScheduler.stepc                 C   r   r   r	   r   r	   r	   r   r      r   z AbsBatchStepScheduler.state_dictc                 C   r   r   r	   r   r	   r	   r   r      r   z%AbsBatchStepScheduler.load_state_dictr   r   r	   r	   r	   r   r      r   r   c                   @   r   )
AbsEpochStepSchedulerNr   c                 C   r   r   r	   r
   r	   r	   r   r   %   r   zAbsEpochStepScheduler.stepc                 C   r   r   r	   r   r	   r	   r   r   )   r   z AbsEpochStepScheduler.state_dictc                 C   r   r   r	   r   r	   r	   r   r   -   r   z%AbsEpochStepScheduler.load_state_dictr   r   r	   r	   r	   r   r   $   r   r   c                   @   r   )
AbsValEpochStepSchedulerNr   c                 C   r   r   r	   )r   valr   r	   r	   r   r   3   r   zAbsValEpochStepScheduler.stepc                 C   r   r   r	   r   r	   r	   r   r   7   r   z#AbsValEpochStepScheduler.state_dictc                 C   r   r   r	   r   r	   r	   r   r   ;   r   z(AbsValEpochStepScheduler.load_state_dictr   r   r	   r	   r	   r   r   2   r   r   )abcr   r   torch.optim.lr_scheduleroptimlr_schedulerLr   r   r   r   registerReduceLROnPlateauLambdaLRStepLRMultiStepLRExponentialLRCosineAnnealingLRsCyclicLR
OneCycleLRCosineAnnealingWarmRestartsr	   r	   r	   r   <module>   s.    	