Ë
    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dededededed	ed
edededefd„Zdeedz     fd„Zy)Ú_FunctionalAdagradÚparamsÚlrÚlr_decayÚweight_decayÚinitial_accumulator_valueÚwarmup_lr_multiplierÚwarmup_num_itersÚepsÚcoalesce_gradÚforeachÚfusedÚmaximizeÚ_allow_empty_param_listc                 ó  — t        d¬«       |||||||dœ| _        |	| _        |
| _        || _        || _        t        j                  j                  t        t        j                  t        t        t        j                  f   f   i «      | _        t        |«      dk(  r|st        d«      ‚d|i| _        | j                  d   D ]E  }t        j                   |j"                  |«      t        j$                  d«      dœ| j                  |<   ŒG y )	Né   )Ú
stacklevel)r	   r
   r   r   r   r   r   r   z%optimizer got an empty parameter listr   ç        )ÚsumÚstep)r   Údefaultsr   r   r   r   ÚtorchÚjitÚannotateÚdictr   ÚstrÚstateÚlenÚ
ValueErrorÚparam_groupÚ	full_likeÚdataÚtensor)Úselfr   r	   r
   r   r   r   r   r   r   r   r   r   r   Úps                  úi/var/www/html/ia-enhanced/venv/lib/python3.12/site-packages/torch/distributed/optim/functional_adagrad.pyÚ__init__z_FunctionalAdagrad.__init__   sò   € ô  	;ÀaÕHàØ ØØ(Ø)BØ$8Ø 0ñ
ˆŒð +ˆÔØˆŒØˆŒ
Ø ˆŒÜ—Y‘Y×'Ñ'¬¬U¯\©\¼4ÄÄUÇ\Á\Ð@QÑ;RÐ-RÑ(SÐUWÓXˆŒ
äˆv‹;˜!ÒÑ$;ÜÐDÓEÐEð % fÐ-ˆÔð ×!Ñ! (Ñ+ò 	ˆAä—‘ q§v¡vÐ/HÓIÜŸ™ SÓ)ñˆD�J‰J�qŠMñ	ó    Ú	gradientsNc                 óD  — | j                   d   }g }g }g }g }t        |«      t        |«      k7  r*t        ddt        |«      › d�z   dt        |«      › �z   «      ‚d\  }}t        | j                   d   |«      D ]ˆ  \  }	}
|
€Œ	||
j                  z  }|t        j                  |	«      z  }|j                  |	«       |j                  |
«       | j                  |	   }|j                  |d   «       |j                  |d   «       ŒŠ t        j                  «       5  t        j                  ||||| j                  d	   | j                  d
   | j                  d   | j                  d   || j                  | j                  || j                  d d ¬«       d d d «       y # 1 sw Y   y xY w)Nr   zEthe gradients passed in does not equal to the size of the parameters!zParams length: z. zGradients length: )FFr   r   r	   r   r
   r   )r	   r   r
   r   Úhas_sparse_gradr   r   Úhas_complexr   Ú
grad_scaleÚ	found_inf)r$   r"   r#   ÚzipÚ	is_sparser   Ú
is_complexÚappendr!   Úno_gradÚFÚadagradr   r   r   r   )r(   r-   r   Úparams_with_gradÚgradsÚ
state_sumsÚstate_stepsr/   r0   ÚparamÚgradientr!   s               r*   r   z_FunctionalAdagrad.stepH   s¡  € Ø×!Ñ! (Ñ+ˆØÐØˆØˆ
Ø$&ˆäˆv‹;œ#˜i›.Ò(ÜØWØ#¤C¨£K =°Ð3ñ4à&¤s¨9£~Ð&6Ð7ñ8óð ð (4Ñ$ˆ˜Ü" 4×#3Ñ#3°HÑ#=¸yÓIò 	2‰OˆE�8ØÑ#Ø 8×#5Ñ#5Ñ5�Øœu×/Ñ/°Ó6Ñ6�Ø ×'Ñ'¨Ô.Ø—‘˜XÔ&ØŸ
™
 5Ñ)�Ø×!Ñ! %¨¡,Ô/Ø×"Ñ" 5¨¡=Õ1ð	2ô �]‰]‹_ñ 	Ü�I‰IØØØØØ—=‘= Ñ&Ø!Ÿ]™]¨>Ñ:ØŸ™ zÑ2Ø—M‘M %Ñ(Ø /ØŸ™ØŸ™Ø'Ø—j‘jØØõ÷	÷ 	ñ 	ús   ÄA7FÆF)g{®Gáz„?r   r   r   g      ð?r   g»½×Ùß|Û=TFFFF)	Ú__name__Ú
__module__Ú__qualname__Úlistr   ÚfloatÚboolr+   r   © r,   r*   r   r      sÇ   „ ð
 ØØ!Ø+.Ø&)Ø"%ØØ"ØØØØ(-ñ-à�V‘ð-ð ð-ð ð	-ð
 ð-ð $)ð-ð $ð-ð  ð-ð ð-ð ð-ð ð-ð ð-ð ð-ð "&ó-ð^*˜d 6¨D¡=Ñ1ô *r,   r   )r   Útorch.optim._functionalÚoptimÚ_functionalr8   r   Ú,torch.distributed.optim._deprecation_warningr   r   rC   r    Ú__annotations__r   Úscriptr   rF   r,   r*   ú<module>rM      sN   ðô ß #Ð #Ý õð
 €ˆˆc‰Ó ð ‡�×Ñ÷Zð Zó ñZr,   