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Chainer 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 )
ÚChainerSchedulerzChainer optimizer scheduler.Ú
schedulersÚ	optimizerc                 C   s:   || _ || _tƒ | _| j D ]}t| j|jƒ| j|j< qdS )zInitialize class.N)r   r   ÚdictÚinit_valuesÚgetattrÚkey)Úselfr   r   Ús© r   úL/home/ubuntu/.local/lib/python3.10/site-packages/espnet/scheduler/chainer.pyÚ__init__   s   
ÿzChainerScheduler.__init__Ún_iterc                 C   s6   | j D ]}| j|j | |¡ }t| j|j|ƒ qdS )zUpdate optimizer by scheduling.N)r   r	   r   ÚscaleÚsetattrr   )r   r   r   Únew_valr   r   r   Ústep   s   
þzChainerScheduler.stepN)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   Úintr   r   r   r   r   r   
   s    r   N)r   Útypingr   Úchainer.optimizerr   Úespnet.scheduler.schedulerr   r   r   r   r   r   Ú<module>   s
    