o
    i
                     @   s   d Z ddlZddlZddlmZ ddlmZ ddlmZm	Z	m
Z
 G dd deZG dd	 d	eZG d
d deZeeedZdS )zChainer optimizer builders.    N)WeightDecay)OptimizerFactoryInterface)adadeltaadamsgdc                   @   >   e Zd ZdZedejdejfddZedejfddZ	d	S )
AdamFactoryzAdam factory.parserreturnc                 C      t | S zRegister args.)r   r	    r   L/home/ubuntu/.local/lib/python3.10/site-packages/espnet/optimizer/chainer.pyadd_arguments      zAdamFactory.add_argumentsargsc                 C   s6   t jj|j|j|jd}||  |t|j	 |S )Initialize optimizer from argparse Namespace.

        Args:
            target: for pytorch `model.parameters()`,
                for chainer `model`
            args (argparse.Namespace): parsed command-line args

        )alphabeta1beta2)
chainer
optimizersAdamlrr   r   setupadd_hookr   weight_decaytargetr   optr   r   r   	from_args   s   

zAdamFactory.from_argsN
__name__
__module____qualname____doc__staticmethodargparseArgumentParserr   	Namespacer!   r   r   r   r   r          r   c                   @   r   )

SGDFactoryzSGD factory.r	   r
   c                 C   r   r   )r   r   r   r   r   r   *   r   zSGDFactory.add_argumentsr   c                 C   s.   t jj|jd}||  |t|j |S )r   )r   )r   r   SGDr   r   r   r   r   r   r   r   r   r!   /   s   

zSGDFactory.from_argsNr"   r   r   r   r   r,   '   r+   r,   c                   @   r   )
AdadeltaFactoryzAdadelta factory.r	   r
   c                 C   r   r   )r   r   r   r   r   r   D   r   zAdadeltaFactory.add_argumentsr   c                 C   s2   t jj|j|jd}||  |t|j |S )r   )rhoeps)	r   r   AdaDeltar/   r0   r   r   r   r   r   r   r   r   r!   I   s   

zAdadeltaFactory.from_argsNr"   r   r   r   r   r.   A   r+   r.   )r   r   r   )r&   r(   r   chainer.optimizer_hooksr   espnet.optimizer.factoryr   espnet.optimizer.parserr   r   r   r   r,   r.   OPTIMIZER_FACTORY_DICTr   r   r   r   <module>   s    
