o
    ¡¿¯i!  ã                   @   s:   d Z ddlmZ ddlmZ ddlmZ G dd„ dƒZdS )zPyTorch optimizer schdulers.é    )ÚList)Ú	Optimizer)ÚSchedulerInterfacec                   @   s4   e Zd ZdZdee defdd„Zdefdd„Z	d	S )
ÚPyTorchSchedulerzPyTorch optimizer scheduler.Ú
schedulersÚ	optimizerc                 C   s@   || _ || _| j D ]}|jD ]}| d|j ||j ¡ qq	dS )zInitialize class.Úinitial_N)r   r   Úparam_groupsÚ
setdefaultÚkey)Úselfr   r   ÚsÚgroup© r   úL/home/ubuntu/.local/lib/python3.10/site-packages/espnet/scheduler/pytorch.pyÚ__init__   s   

ÿÿzPyTorchScheduler.__init__Ún_iterc                 C   s<   | j D ]}| jjD ]}|d|j  | |¡ ||j< q	qdS )zUpdate optimizer by scheduling.r   N)r   r   r	   r   Úscale)r   r   r   r   r   r   r   Ústep   s
   
 ÿÿzPyTorchScheduler.stepN)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   Úintr   r   r   r   r   r   
   s    r   N)r   Útypingr   Útorch.optimr   Úespnet.scheduler.schedulerr   r   r   r   r   r   Ú<module>   s
    