§
    Ÿ²Åj¹  ã                   óª   — U d dl mZmZmZmZ d dlZd dlmc mZ	 d dlm
Z
 d dlmZ g Zee         ed<   ej        j         G d„ d¦  «        ¦   «         ZdS )é    )ÚDictÚListÚOptionalÚTupleN)ÚTensor)Ú2_scripted_functional_optimizer_deprecation_warningÚ__all__c                   ó†   — e Zd Z	 	 	 	 	 	 	 ddee         dedeeef         d	ed
edededefd„Zdee	e                  fd„Z
dS )Ú_FunctionalAdamaxçü©ñÒMbP?©gÍÌÌÌÌÌì?g+‡ÙÎ÷ï?ç:Œ0âŽyE>ç        FÚparamsÚlrÚbetasÚepsÚweight_decayÚforeachÚmaximizeÚ_allow_empty_param_listc	                 óÂ  — t          d¬¦  «         d|k    st          d|› �¦  «        ‚d|k    st          d|› �¦  «        ‚d|d         cxk    rdk     sn t          d|d         › �¦  «        ‚d|d	         cxk    rdk     sn t          d
|d	         › �¦  «        ‚d|k    st          d|› �¦  «        ‚|||d         |d	         |dœ| _        || _        || _        t
          j                             t          t
          j	        t          t          t
          j	        f         f         i ¦  «        | _        t          |¦  «        dk    r|st          d¦  «        ‚d|i| _        d S )Né   )Ú
stacklevelr   zInvalid learning rate: zInvalid epsilon value: r   g      ð?z#Invalid beta parameter at index 0: é   z#Invalid beta parameter at index 1: zInvalid weight_decay value: )r   r   Úbeta1Úbeta2r   z%optimizer got an empty parameter listr   )r   Ú
ValueErrorÚdefaultsr   r   ÚtorchÚjitÚannotater   r   ÚstrÚstateÚlenÚparam_group)	Úselfr   r   r   r   r   r   r   r   s	            úZC:\Projects\Historical\venv\Lib\site-packages\torch/distributed/optim/functional_adamax.pyÚ__init__z_FunctionalAdamax.__init__   s—  € õ 	;ÀaÐHÑHÔHÐHØ�bŠyˆyÝÐ;°rÐ;Ð;Ñ<Ô<Ð<Ø�cŠzˆzÝÐ<°sÐ<Ð<Ñ=Ô=Ð=Ø�e˜A”hÐ$Ð$Ò$Ð$ Ò$Ð$Ð$Ð$ÝÐMÀ5ÈÄ8ÐMÐMÑNÔNÐNØ�e˜A”hÐ$Ð$Ò$Ð$ Ò$Ð$Ð$Ð$ÝÐMÀ5ÈÄ8ÐMÐMÑNÔNÐNØ�lÒ"Ð"ÝÐJ¸LÐJÐJÑKÔKÐKð ØØ˜1”XØ˜1”XØ(ð
ð 
ˆŒð ˆŒØ ˆŒÝ”Y×'Ò'­­U¬\½4ÅÅUÄ\Ð@QÔ;RÐ-RÔ(SÐUWÑXÔXˆŒ
åˆv‰;Œ;˜!ÒÐÐ$;ÐÝÐDÑEÔEÐEð % fÐ-ˆÔÐÐó    Ú	gradientsc                 ó„  — | j         d         }g }g }g }g }g }t          |¦  «        t          |¦  «        k    r6t          ddt          |¦  «        › d�z   dt          |¦  «        › �z   ¦  «        ‚d}t          | j         d         |¦  «        D �]%\  }	}
|
��|t	          j        |	¦  «        z  }|                     |	¦  «         |                     |
¦  «         |	| j        vrti | j        |	<   | j        |	         }t	          j        d¦  «        |d<   t	          j	        |	t          j
        ¬	¦  «        |d
<   t	          j	        |	t          j
        ¬	¦  «        |d<   | j        |	         }|                     |d
         ¦  «         |                     |d         ¦  «         |                     |d         ¦  «         �Œ't	          j        ¦   «         5  t          j        |||||| j        d         | j        d         | j        d         | j        d         | j        d         | j        | j        |¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   zEthe gradients passed in does not equal to the size of the parameters!zParams length: z. zGradients length: Fr   Ústep)Úmemory_formatÚexp_avgÚexp_infr   r   r   r   r   )r   r   r   r   r   r   r   Úhas_complex)r&   r%   r   Úzipr    Ú
is_complexÚappendr$   ÚtensorÚ
zeros_likeÚpreserve_formatÚno_gradÚFÚadamaxr   r   r   )r'   r+   r   Úparams_with_gradÚgradsÚexp_avgsÚexp_infsÚstate_stepsr1   ÚparamÚgradientr$   s               r(   r-   z_FunctionalAdamax.stepC   sŸ  € ØÔ! (Ô+ˆØÐØˆØˆØˆØ$&ˆåˆv‰;Œ;�#˜i™.œ.Ò(Ð(ÝØWØ3¥C¨¡K¤KÐ3Ð3Ð3ñ4à7¥s¨9¡~¤~Ð7Ð7ñ8ñô ð ð ˆÝ" 4Ô#3°HÔ#=¸yÑIÔIð 	2ñ 	2‰OˆE�8ØÑ#Ø�uÔ/°Ñ6Ô6Ñ6�Ø ×'Ò'¨Ñ.Ô.Ð.Ø—’˜XÑ&Ô&Ð&à ¤
Ð*Ð*Ø(*�D”J˜uÑ%Ø œJ uÔ-�EÝ$)¤L°Ñ$5Ô$5�E˜&‘Må',Ô'7Ø­UÔ-Bð(ñ (ô (�E˜)Ñ$õ (-Ô'7Ø­UÔ-Bð(ñ (ô (�E˜)Ñ$ð œ
 5Ô)�à—’  iÔ 0Ñ1Ô1Ð1Ø—’  iÔ 0Ñ1Ô1Ð1Ø×"Ò" 5¨¤=Ñ1Ô1Ð1ùåŒ]‰_Œ_ð 	ð 	ÝŒHØ ØØØØØ”M %Ô(Ø”m GÔ,Ø”m GÔ,Ø”= Ô&Ø!œ]¨>Ô:ØœØœØ'ðñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ÇA#H5È5H9È<H9N)r   r   r   r   FFF)Ú__name__Ú
__module__Ú__qualname__r   r   Úfloatr   Úboolr)   r   r-   © r*   r(   r   r      sÅ   € € € € € ð
 Ø%1ØØ!ØØØ(-ð'.ð '.à�V”ð'.ð ð'.ð �U˜E�\Ô"ð	'.ð
 ð'.ð ð'.ð ð'.ð ð'.ð "&ð'.ð '.ð '.ð '.ðR8˜d 8¨FÔ#3Ô4ð 8ð 8ð 8ð 8ð 8ð 8r*   r   )Útypingr   r   r   r   r    Útorch.optim._functionalÚoptimÚ_functionalr9   r   Ú,torch.distributed.optim._deprecation_warningr   r	   r#   Ú__annotations__r!   Úscriptr   rG   r*   r(   ú<module>rO      sä   ðà .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .à €€€Ø #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð
 €ˆˆcŒÐ Ð Ñ ð „Ôðbð bð bð bð bñ bô bñ Ôðbð bð br*   