
    IЦiX                         % S SK JrJrJr  S SKrS SKJs  Jr  S SKJ	r	  S SK
Jr  / r\\   \S'   \R                  R                    " S S5      5       rg)    )DictListOptionalN)Tensor)2_scripted_functional_optimizer_deprecation_warning__all__c                   |    \ rS rSr         SS\\   S\S\S\S\S\S\S	\S
\S\4S jjrS\\	\      4S jr
Srg)_FunctionalRMSprop   paramslralphaepsweight_decaymomentumcenteredforeachmaximize_allow_empty_param_listc                 V   [        SS9  UUUUUS.U l        Xpl        Xl        Xl        [        U5      S:X  a  U
(       d  [        S5      eSU0U l        [        R                  R                  [        [        R                  [        [        [        R                  4   4   0 5      U l        g )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annotater   r   strstate)selfr   r   r   r   r   r   r   r   r   r   s              i/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/torch/distributed/optim/functional_rmsprop.py__init___FunctionalRMSprop.__init__   s     	;aH( 
 ! v;!$;DEE %f-YY''U\\4U\\@Q;R-R(SUWX
    	gradientsc                 n   U R                   S   n/ n/ n/ n/ n/ n/ nU R                  S   n	U R                  S   n
U R                  S   nU R                  S   nU R                  S   n[        U5      [        U5      :w  a*  [        SS[        U5       S	3-   S
[        U5       3-   5      eSn[	        X!5       GH  u  nnUc  M  U[
        R                  " U5      -  nUR                  U5        UR                  U5        XR                  ;  a  0 U R                  U'   U R                  U   n[
        R                  " S5      US'   [
        R                  " U[
        R                  S9US'   US:  a&  [
        R                  " U[
        R                  S9US'   U R                  (       a&  [
        R                  " U[
        R                  S9US'   U R                  U   nUR                  US   5        US:  a  UR                  US   5        U R                  (       a  UR                  US   5        UR                  US   5        GM     [
        R                  " 5          [        R                  " UUUUUUU	U
UUUU R                  U R                   U R"                  US9  S S S 5        g ! , (       d  f       g = f)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*   _FunctionalRMSprop.step<   s   !!(+	!]]4 g&mmE"==,}}^4v;#i.(W#CK=34&s9~&678  "65OE8#u//66 ''.X&

*(*DJJu% JJu-E$)LL$5E&M*/*:*:U-B-B+E,'  !|383C3C!1F1F4/0 }},1,<,<!1F1F-j) 

5)""5#67a<(//6G0HI==$$U:%67""5=1;  6> ]]_II $)!' __s   AJ&&
J4)r   r   r   r   r   r!   N)	g{Gz?gGz?g:0yE>r)   r)   FFFF)__name__
__module____qualname____firstlineno__r   r   floatboolr$   r   r*   __static_attributes__ r&   r#   r
   r
      s    
 !(- YV Y  Y 	 Y
  Y  Y  Y  Y  Y  Y "& YDFd8F#34 Fr&   r
   )typingr   r   r   r   torch.optim._functionaloptim_functionalr7   r   ,torch.distributed.optim._deprecation_warningr   r   r    __annotations__r   scriptr
   rI   r&   r#   <module>rQ      sR    ' '  # # 
 c  i i ir&   