Ë
    M²jß  ã                   ó’   — U 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y)é    N)Ú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d	ed
efd„Zdededz  fd„Z	deedz     fd„Z
y)Ú_FunctionalAdamÚparamsÚlrÚbetasÚepsÚweight_decayÚamsgradÚmaximizeÚforeachÚfusedÚ_allow_empty_param_listc                 óf  — 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                  j                  t        t        j                  t        t        t        j                  f   f   i «      | _        t        |«      dk(  r|
st        d«      ‚d|i| _        y )Né   )Ú
stacklevelç        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   r   r   ÚtorchÚjitÚannotateÚdictr   ÚstrÚstateÚlenÚparam_group)Úselfr   r	   r
   r   r   r   r   r   r   r   s              úf/var/www/html/ia-enhanced/venv/lib/python3.12/site-packages/torch/distributed/optim/functional_adam.pyÚ__init__z_FunctionalAdam.__init__   sJ  € ô 	;ÀaÕHØ�bŠyÜÐ6°r°dÐ;Ó<Ð<Ø�cŠzÜÐ6°s°eÐ<Ó=Ð=Ø�e˜A‘hÔ$ Ô$ÜÐBÀ5ÈÁ8À*ÐMÓNÐNØ�e˜A‘hÔ$ Ô$ÜÐBÀ5ÈÁ8À*ÐMÓNÐNØ�lÒ"ÜÐ;¸L¸>ÐJÓKÐKð ØØ˜1‘XØ˜1‘XØ(ñ
ˆŒð ˆŒØ ˆŒØˆŒØˆŒ
Ü—Y‘Y×'Ñ'¬¬U¯\©\¼4ÄÄUÇ\Á\Ð@QÑ;RÐ-RÑ(SÐUWÓXˆŒ
äˆv‹;˜!ÒÑ$;ÜÐDÓEÐEð % fÐ-ˆÕó    ÚparamÚgradNc                 óf  — g }g }g }g }g }g }t        j                  |«      }	|�"|j                  |«       |j                  |«       || j                  vrºi | j                  |<   | j                  |   }
t        j                  d«      |
d<   t        j
                  |t         j                  ¬«      |
d<   t        j
                  |t         j                  ¬«      |
d<   | j                  r(t        j
                  |t         j                  ¬«      |
d<   | j                  |   }
|j                  |
d   «       |j                  |
d   «       | j                  r|j                  |
d   «       |j                  |
d   «       t        j                  «       5  t        j                  ||||||| j                  |	| j                  | j                  d   | j                  d	   | j                  d
   | j                  d   | j                  d   | j                  | j                  dd¬«       ddd«       y# 1 sw Y   yxY w)zo
        Similar to step, but operates on a single parameter and optionally a
        gradient tensor.
        Nr   Ústep©Úmemory_formatÚexp_avgÚ
exp_avg_sqÚmax_exp_avg_sqr   r   r	   r   r   ©r   Úhas_complexr   r   r   r	   r   r   r   r   Ú
grad_scaleÚ	found_inf)r   Ú
is_complexÚappendr    ÚtensorÚ
zeros_likeÚpreserve_formatr   Úno_gradÚFÚadamr   r   r   r   )r#   r'   r(   Úparams_with_gradÚgradsÚexp_avgsÚexp_avg_sqsÚmax_exp_avg_sqsÚstate_stepsr1   r    s              r$   Ú
step_paramz_FunctionalAdam.step_paramF   s÷  € ð
 ÐØˆØˆØˆØˆØ$&ˆÜ×&Ñ& uÓ-ˆØÐØ×#Ñ# EÔ*Ø�L‰L˜ÔØ˜Ÿ
™
Ñ"Ø "ˆD�J‰J�uÑØ—J‘J˜uÑ%ˆEÜ!ŸL™L¨Ó-ˆE�&‰MÜ$×/Ñ/Ø¤U×%:Ñ%:ô ˆE�)Ñô #(×"2Ñ"2Ø¤U×%:Ñ%:ô#ˆE�,Ñð �|Š|Ü*/×*:Ñ*:Ø¬×)>Ñ)>ô+�Ð&Ñ'ð —
‘
˜5Ñ!ˆØ�‰˜˜iÑ(Ô)Ø×Ñ˜5 Ñ.Ô/à�<Š<Ø×"Ñ" 5Ð)9Ñ#:Ô;à×Ñ˜5 ™=Ô)Ü�]‰]‹_ñ 	Ü�F‰FØ ØØØØØØŸ™Ø'ØŸ™Ø—m‘m GÑ,Ø—m‘m GÑ,Ø—=‘= Ñ&Ø!Ÿ]™]¨>Ñ:Ø—M‘M %Ñ(ØŸ™Ø—j‘jØØõ%÷	÷ 	ñ 	ús   ÆBH'È'H0Ú	gradientsc                 óX  — | j                   d   }g }g }g }g }g }g }d}	t        |«      t        |«      k7  r*t        ddt        |«      › d�z   dt        |«      › �z   «      ‚t        | j                   d   |«      D �]v  \  }
}|€Œ
|	t	        j
                  |
«      z  }	|j                  |
«       |j                  |«       |
| j                  vrºi | j                  |
<   | j                  |
   }t	        j                  d«      |d<   t	        j                  |
t        j                  ¬	«      |d
<   t	        j                  |
t        j                  ¬	«      |d<   | j                  r(t	        j                  |
t        j                  ¬	«      |d<   | j                  |
   }|j                  |d
   «       |j                  |d   «       | j                  r|j                  |d   «       |j                  |d   «       �Œy t	        j                  «       5  t        j                  ||||||| j                  |	| j                  | j                   d   | j                   d   | j                   d   | j                   d   | j                   d   | j"                  | j$                  d d ¬«       d d d «       y # 1 sw Y   y xY w)Nr   FzEthe gradients passed in does not equal to the size of the parameters!zParams length: z. zGradients length: r   r*   r+   r-   r.   r/   r   r   r	   r   r   r0   )r"   r!   r   Úzipr   r4   r5   r    r6   r7   r8   r   r9   r:   r;   r   r   r   r   )r#   rC   r   r<   r=   r>   r?   r@   rA   r1   r'   Úgradientr    s                r$   r*   z_FunctionalAdam.step‚   sƒ  € Ø×!Ñ! (Ñ+ˆØÐØˆØˆØˆØˆØ$&ˆØˆäˆv‹;œ#˜i›.Ò(ÜØWØ#¤C¨£K =°Ð3ñ4à&¤s¨9£~Ð&6Ð7ñ8óð ô  # 4×#3Ñ#3°HÑ#=¸yÓIó  	2‰OˆE�8ØÑ#Øœu×/Ñ/°Ó6Ñ6�Ø ×'Ñ'¨Ô.Ø—‘˜XÔ&à §
¡
Ñ*Ø(*�D—J‘J˜uÑ%Ø ŸJ™J uÑ-�EÜ$)§L¡L°Ó$5�E˜&‘Mä',×'7Ñ'7Ø¬U×-BÑ-Bô(�E˜)Ñ$ô +0×*:Ñ*:Ø¬U×-BÑ-Bô+�E˜,Ñ'ð —|’|ä27×2BÑ2BØ!´×1FÑ1Fô3˜Ð.Ñ/ð Ÿ
™
 5Ñ)�à—‘  iÑ 0Ô1Ø×"Ñ" 5¨Ñ#6Ô7à—<’<Ø#×*Ñ*¨5Ð1AÑ+BÔCà×"Ñ" 5¨¡=Ö1ðA 	2ôD �]‰]‹_ñ 	Ü�F‰FØ ØØØØØØŸ™Ø'ØŸ™Ø—m‘m GÑ,Ø—m‘m GÑ,Ø—=‘= Ñ&Ø!Ÿ]™]¨>Ñ:Ø—M‘M %Ñ(ØŸ™Ø—j‘jØØõ%÷	÷ 	ñ 	ús   ÈBJ Ê J))	gü©ñÒMbP?)gÍÌÌÌÌÌì?g+‡ÙÎ÷ï?g:Œ0âŽyE>r   FFFFF)Ú__name__Ú
__module__Ú__qualname__Úlistr   ÚfloatÚtupleÚboolr%   rB   r*   © r&   r$   r   r      sÃ   „ ð
 Ø%1ØØ!ØØØØØ(-ñ+.à�V‘ð+.ð ð+.ð �U˜E�\Ñ"ð	+.ð
 ð+.ð ð+.ð ð+.ð ð+.ð ð+.ð ð+.ð "&ó+.ðZ: ð :¨f°t©mó :ðxG˜d 6¨D¡=Ñ1ô Gr&   r   )r   Útorch.optim._functionalÚoptimÚ_functionalr:   r   Ú,torch.distributed.optim._deprecation_warningr   r   rJ   r   Ú__annotations__r   Úscriptr   rN   r&   r$   ú<module>rU      sN   ðô ß #Ð #Ý õð
 €ˆˆc‰Ó ð ‡�×Ñ÷qð qó ñqr&   