§
    Ÿ²Åjí  ã                   ó¦   — U d dl 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ÚOptionalN)ÚTensor)Ú2_scripted_functional_optimizer_deprecation_warningÚ__all__c                   óv   — e Zd Z	 	 	 	 	 	 	 ddee         deded	ed
edededefd„Zdeee                  fd„Z	dS )Ú_FunctionalAdadeltaç      ð?çÍÌÌÌÌÌì?ç�íµ ÷Æ°>ç        FÚparamsÚlrÚrhoÚepsÚweight_decayÚforeachÚmaximizeÚ_allow_empty_param_listc	                 ód  — t          d¬¦  «         ||||dœ| _        || _        || _        t	          |¦  «        dk    r|st          d¦  «        ‚d|i| _        t          j         	                    t          t          j        t          t          t          j        f         f         i ¦  «        | _        d S )Né   )Ú
stacklevel)r   r   r   r   r   z%optimizer got an empty parameter listr   )r   Údefaultsr   r   ÚlenÚ
ValueErrorÚparam_groupÚtorchÚjitÚannotater   r   ÚstrÚstate)	Úselfr   r   r   r   r   r   r   r   s	            ú\C:\Projects\Historical\venv\Lib\site-packages\torch/distributed/optim/functional_adadelta.pyÚ__init__z_FunctionalAdadelta.__init__   sª   € õ 	;ÀaÐHÑHÔHÐHàØØØ(ð	
ð 
ˆŒð ˆŒØ ˆŒåˆv‰;Œ;˜!ÒÐÐ$;ÐÝÐDÑEÔEÐEð % fÐ-ˆÔå”Y×'Ò'­­U¬\½4ÅÅUÄ\Ð@QÔ;RÐ-RÔ(SÐUWÑXÔXˆŒ
ˆ
ˆ
ó    Ú	gradientsc                 óf  — | j         d         }g }g }g }g }g }| j        d         }| j        d         }	| j        d         }
| j        d         }t          |¦  «        t          |¦  «        k    r6t          ddt          |¦  «        › d�z   d	t          |¦  «        › �z   ¦  «        ‚d
}t	          ||¦  «        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        | j        |¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r   r   r   r   zEthe gradients passed in does not equal to the size of the parameters!zParams length: z. zGradients length: Fr   Ústep)Úmemory_formatÚ
square_avgÚ	acc_delta)r   r   r   r   r   r   Úhas_complex)r   r   r   r   Úzipr   Ú
is_complexÚappendr"   ÚtensorÚ
zeros_likeÚpreserve_formatÚno_gradÚFÚadadeltar   r   )r#   r'   r   Úparams_with_gradÚgradsÚsquare_avgsÚ
acc_deltasÚstate_stepsr   r   r   r   r-   ÚparamÚgradientr"   s                   r$   r)   z_FunctionalAdadelta.step8   s¥  € ØÔ! (Ô+ˆØÐØˆØˆØˆ
ØˆØŒ]˜4Ô ˆØŒm˜EÔ"ˆØŒm˜EÔ"ˆØ”} ^Ô4ˆåˆv‰;Œ;�#˜i™.œ.Ò(Ð(ÝØWØ3¥C¨¡K¤KÐ3Ð3Ð3ñ4à7¥s¨9¡~¤~Ð7Ð7ñ8ñô ð ð
 ˆÝ" 6¨9Ñ5Ô5ð 	2ñ 	2‰OˆE�8ØÑ#Ø�uÔ/°Ñ6Ô6Ñ6�Ø ×'Ò'¨Ñ.Ô.Ð.Ø—’˜XÑ&Ô&Ð&à ¤
Ð*Ð*Ø(*�D”J˜uÑ%Ø œJ uÔ-�EÝ$)¤L°Ñ$5Ô$5�E˜&‘MÝ*/Ô*:Ø­UÔ-Bð+ñ +ô +�E˜,Ñ'õ */Ô)9Ø­UÔ-Bð*ñ *ô *�E˜+Ñ&ð œ
 5Ô)�Ø×"Ò" 5¨Ô#6Ñ7Ô7Ð7Ø×!Ò! %¨Ô"4Ñ5Ô5Ð5Ø×"Ò" 5¨¤=Ñ1Ô1Ð1ùåŒ]‰_Œ_ð 	ð 	ÝŒJØ ØØØØØØØØ)ØœØœØ'ðñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   Ç.+H&È&H*È-H*N)r   r   r   r   FFF)
Ú__name__Ú
__module__Ú__qualname__r   r   ÚfloatÚboolr%   r   r)   © r&   r$   r
   r
      sÈ   € € € € € ð
 ØØØ!ØØØ(-ðYð Yà�V”ðYð ðYð ð	Yð
 ðYð ðYð ðYð ðYð "&ðYð Yð Yð Yð<7˜d 8¨FÔ#3Ô4ð 7ð 7ð 7ð 7ð 7ð 7r&   r
   )Útypingr   r   r   r   Útorch.optim._functionalÚoptimÚ_functionalr5   r   Ú,torch.distributed.optim._deprecation_warningr   r   r!   Ú__annotations__r   Úscriptr
   rC   r&   r$   ú<module>rK      sÞ   ðà 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'à €€€Ø #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð
 €ˆˆcŒÐ Ð Ñ ð „ÔðVð Vð Vð Vð Vñ Vô Vñ ÔðVð Vð Vr&   