Ë
    g^(hL  ã                   óž   — U d dl 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y)é    )ÚOptionalN)ÚTensor)Ú2_scripted_functional_optimizer_deprecation_warningÚ__all__c                   ón   — 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fd„Zdeee      fd„Z	y)Ú_FunctionalRMSpropÚparamsÚlrÚalphaÚepsÚweight_decayÚmomentumÚcenteredÚforeachÚmaximizeÚ_allow_empty_param_listc                 óV  — t        d¬«       |||||dœ| _        || _        || _        |	| _        t        |«      dk(  r|
st        d«      ‚d|i| _        t        j                  j                  t        t        j                  t        t        t        j                  f   f   i «      | _        y )Né   )Ú
stacklevel)r
   r   r   r   r   r   z%optimizer got an empty parameter listr	   )r   Údefaultsr   r   r   ÚlenÚ
ValueErrorÚparam_groupÚtorchÚjitÚannotateÚdictr   ÚstrÚstate)Úselfr	   r
   r   r   r   r   r   r   r   r   s              úh/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/torch/distributed/optim/functional_rmsprop.pyÚ__init__z_FunctionalRMSprop.__init__   sš   € ô 	;ÀaÕHàØØØ(Ø ñ
ˆŒð !ˆŒØˆŒØ ˆŒäˆv‹;˜!ÒÑ$;ÜÐDÓEÐEð % fÐ-ˆÔä—Y‘Y×'Ñ'¬¬U¯\©\¼4ÄÄUÇ\Á\Ð@QÑ;RÐ-RÑ(SÐUWÓXˆ�
ó    Ú	gradientsc                 óL  — | j                   d   }g }g }g }g }g }g }| j                  d   }	| j                  d   }
| j                  d   }| j                  d   }| j                  d   }t        |«      t        |«      k7  r*t        ddt        |«      › d	�z   d
t        |«      › �z   «      ‚d}t	        ||«      D �]€  \  }}|€Œ
|t        j                  |«      z  }|j                  |«       |j                  |«       || j                  vr¿i | j                  |<   | j                  |   }t        j                  d«      |d<   t        j                  |t
        j                  ¬«      |d<   |dkD  r(t        j                  |t
        j                  ¬«      |d<   | j                  r(t        j                  |t
        j                  ¬«      |d<   | j                  |   }|j                  |d   «       |dkD  r|j                  |d   «       | j                  r|j                  |d   «       |j                  |d   «       �Œƒ t        j                  «       5  t        j                  |||||||	|
|||| j                  | j                   | j"                  |¬«       d d d «       y # 1 sw Y   y xY w)Nr	   r
   r   r   r   r   zEthe gradients passed in does not equal to the size of the parameters!zParams length: z. zGradients length: Fç        Ústep)Úmemory_formatÚ
square_avgr   Úmomentum_bufferÚgrad_avg)	r
   r   r   r   r   r   r   r   Úhas_complex)r   r   r   r   Úzipr   Ú
is_complexÚappendr   ÚtensorÚ
zeros_likeÚpreserve_formatr   Úno_gradÚFÚrmspropr   r   )r    r$   r	   Úparams_with_gradÚgradsÚsquare_avgsÚ	grad_avgsÚmomentum_buffer_listÚstate_stepsr
   r   r   r   r   r,   ÚparamÚgradientr   s                     r!   r'   z_FunctionalRMSprop.step<   s“  € Ø×!Ñ! (Ñ+ˆØÐØˆØˆØˆ	Ø!ÐØˆØ�]‰]˜4Ñ ˆØ—‘˜gÑ&ˆØ�m‰m˜EÑ"ˆØ—=‘= Ñ,ˆØ—}‘} ^Ñ4ˆäˆv‹;œ#˜i›.Ò(ÜØWØ#¤C¨£K =°Ð3ñ4à&¤s¨9£~Ð&6Ð7ñ8óð ð ˆÜ" 6¨9Ó5ó 	2‰OˆE�8ØÑ#Øœu×/Ñ/°Ó6Ñ6�Ø ×'Ñ'¨Ô.Ø—‘˜XÔ&à §
¡
Ñ*Ø(*�D—J‘J˜uÑ%Ø ŸJ™J uÑ-�EÜ$)§L¡L°Ó$5�E˜&‘MÜ*/×*:Ñ*:Ø¬U×-BÑ-Bô+�E˜,Ñ'ð   !’|Ü38×3CÑ3CØ!´×1FÑ1Fô4˜Ð/Ñ0ð —}’}Ü,1×,<Ñ,<Ø!´×1FÑ1Fô-˜˜jÑ)ð Ÿ
™
 5Ñ)�Ø×"Ñ" 5¨Ñ#6Ô7Ø˜a’<Ø(×/Ñ/°Ð6GÑ0HÔIØ—=’=Ø×$Ñ$ U¨:Ñ%6Ô7à×"Ñ" 5¨¡=Ö1ð;	2ô> �]‰]‹_ñ 	Ü�I‰IØ ØØØØ$ØØØØØ)Ø!ØŸ™ØŸ™ØŸ™Ø'õ÷	÷ 	ñ 	ús   ÉAJÊJ#N)	g{®Gáz„?g®Gáz®ï?g:Œ0âŽyE>r&   r&   FFFF)
Ú__name__Ú
__module__Ú__qualname__Úlistr   ÚfloatÚboolr"   r   r'   © r#   r!   r   r      s®   „ ð
 ØØØ!ØØØØØ(-ñ Yà�V‘ð Yð ð Yð ð	 Yð
 ð Yð ð Yð ð Yð ð Yð ð Yð ð Yð "&ó YðDF˜d 8¨FÑ#3Ñ4ô Fr#   r   )Útypingr   r   Útorch.optim._functionalÚoptimÚ_functionalr4   r   Ú,torch.distributed.optim._deprecation_warningr   r   rA   r   Ú__annotations__r   Úscriptr   rD   r#   r!   ú<module>rL      sO   ðæ ã ß #Ð #Ý õð
 €ˆˆc‰Ó ð ‡�×Ñ÷ið ió ñir#   