§
    �ŠtjDP  ã            &       ó¸  — d Z ddlmZ ddlZddlmZ ddlmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZ ddgZ G d	„ de¦  «        Zd
de› de› de
› de› de› d�z   e_         dee         dee         dee         dee         dee         dee         dededededededededededdf"d „Zdee         dee         dee         dee         dee         dee         dededededededededededdf"d!„Z e	e¬"¦  «        	 	 	 	 	 d&dee         dee         dee         dee         dee         dee         d$edz  dededededededededededdf$d%„¦   «         ZdS )'z)Implementation for the RMSprop algorithm.é    )ÚcastN)ÚTensoré   )Ú_capturable_docÚ_default_to_fused_or_foreachÚ_differentiable_docÚ_disable_dynamo_if_unsupportedÚ_foreach_docÚ!_get_capturable_supported_devicesÚ_get_scalar_dtypeÚ_maximize_docÚ_params_docÚ
_to_scalarÚ_use_grad_for_differentiableÚ_view_as_realÚ	OptimizerÚParamsTÚRMSpropÚrmspropc                   óš   ‡ — e Zd Z	 	 	 	 	 	 	 	 	 	 ddedeez  d	ed
ededededededz  dededdfˆ fd„Zˆ fd„Zd„ Z	e
dd„¦   «         Zˆ xZS )r   ç{®Gáz„?ç®Gáz®ï?ç:Œ0âŽyE>r   FNÚparamsÚlrÚalphaÚepsÚweight_decayÚmomentumÚcenteredÚ
capturableÚforeachÚmaximizeÚdifferentiableÚreturnc                 óÎ  •— t          |t          ¦  «        r'|                     ¦   «         dk    rt          d¦  «        ‚d|k    st          d|› �¦  «        ‚d|k    st          d|› �¦  «        ‚d|k    st          d|› �¦  «        ‚d|k    st          d|› �¦  «        ‚d|k    st          d|› �¦  «        ‚||||||||	|
|d	œ
}t	          ¦   «                              ||¦  «         d S )
Nr   zTensor lr must be 1-elementg        zInvalid learning rate: zInvalid epsilon value: zInvalid momentum value: zInvalid weight_decay value: zInvalid alpha value: )
r   r   r   r   r    r   r!   r"   r#   r$   )Ú
isinstancer   ÚnumelÚ
ValueErrorÚsuperÚ__init__)Úselfr   r   r   r   r   r   r    r!   r"   r#   r$   ÚdefaultsÚ	__class__s                €úQ/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torch/optim/rmsprop.pyr+   zRMSprop.__init__   s&  ø€ õ �b�&Ñ!Ô!ð 	< b§h¢h¡j¤j°A¢o oÝÐ:Ñ;Ô;Ð;Ø�bŠyˆyÝÐ;°rÐ;Ð;Ñ<Ô<Ð<Ø�cŠzˆzÝÐ<°sÐ<Ð<Ñ=Ô=Ð=Ø�hŠˆÝÐB¸ÐBÐBÑCÔCÐCØ�lÒ"Ð"ÝÐJ¸LÐJÐJÑKÔKÐKØ�eŠ|ˆ|ÝÐ<°UÐ<Ð<Ñ=Ô=Ð=ð Ø ØØØ Ø(Ø$ØØ Ø,ð
ð 
ˆõ 	‰Œ×Ò˜ Ñ*Ô*Ð*Ð*Ð*ó    c                 óä  •— t          ¦   «                              |¦  «         | j        D �]D}|                     dd¦  «         |                     dd¦  «         |                     dd ¦  «         |                     dd¦  «         |                     dd¦  «         |                     dd¦  «         |d	         D ]´}| j                             |g ¦  «        }t          |¦  «        dk    r„t          j        |d
         ¦  «        sjt          |d
         ¦  «        }|d         r(t          j
        |t          ¦   «         |j        ¬¦  «        n!t          j
        |t          ¦   «         ¬¦  «        |d
<   Œµ�ŒFd S )Nr   r   r    Fr"   r#   r$   r!   r   Ústep©ÚdtypeÚdevice©r4   )r*   Ú__setstate__Úparam_groupsÚ
setdefaultÚstateÚgetÚlenÚtorchÚ	is_tensorÚfloatÚtensorr   r5   )r,   r:   ÚgroupÚpÚp_stateÚstep_valr.   s         €r/   r7   zRMSprop.__setstate__H   s{  ø€ Ý‰Œ×Ò˜UÑ#Ô#Ð#ØÔ&ð 	ñ 	ˆEØ×Ò˜Z¨Ñ+Ô+Ð+Ø×Ò˜Z¨Ñ/Ô/Ð/Ø×Ò˜Y¨Ñ-Ô-Ð-Ø×Ò˜Z¨Ñ/Ô/Ð/Ø×ÒÐ-¨uÑ5Ô5Ð5Ø×Ò˜\¨5Ñ1Ô1Ð1Ø˜8”_ð 
ð 
�Øœ*Ÿ.š.¨¨BÑ/Ô/�Ý�w‘<”< 1Ò$Ð$­U¬_¸WÀV¼_Ñ-MÔ-MÐ$Ý$ W¨V¤_Ñ5Ô5�Hð
 ! Ô.ðO�œØ$Õ,=Ñ,?Ô,?ÈÌðñ ô ð õ #œ\¨(Õ:KÑ:MÔ:MÐNÑNÔNð ˜F‘Oøñ	
ð	ð 	r0   c                 óÚ  — d}|d         D �]Þ}	|	j         €Œ|t          j        |	¦  «        z  }|                     |	¦  «         |	j         j        rt          d¦  «        ‚|                     |	j         ¦  «         | j        |	         }
t          |
¦  «        dk    rÒ|d         r(t          j        dt          ¦   «         |	j
        ¬¦  «        n!t          j        dt          ¦   «         ¬¦  «        |
d	<   t          j        |	t          j        ¬
¦  «        |
d<   |d         dk    r#t          j        |	t          j        ¬
¦  «        |
d<   |d         r#t          j        |	t          j        ¬
¦  «        |
d<   |                     |
d         ¦  «         |                     |
d	         ¦  «         |d         dk    r|                     |
d         ¦  «         |d         r|                     |
d         ¦  «         �Œà|S )NFr   z)RMSprop does not support sparse gradientsr   r!   © r3   r6   r2   )Úmemory_formatÚ
square_avgr   Úmomentum_bufferr    Úgrad_avg)Úgradr=   Ú
is_complexÚappendÚ	is_sparseÚRuntimeErrorr:   r<   Úzerosr   r5   Ú
zeros_likeÚpreserve_format)r,   rA   Úparams_with_gradÚgradsÚsquare_avgsÚmomentum_buffer_listÚ	grad_avgsÚstate_stepsÚhas_complexrB   r:   s              r/   Ú_init_groupzRMSprop._init_group]   s  € ð ˆØ�x”ð $	4ñ $	4ˆAØŒvˆ~ØØ�5Ô+¨AÑ.Ô.Ñ.ˆKØ×#Ò# AÑ&Ô&Ð&àŒvÔð PÝ"Ð#NÑOÔOÐOØ�LŠL˜œÑ Ô Ð à”J˜q”MˆEõ �5‰zŒz˜QŠˆð ˜\Ô*ðD•E”K Õ*;Ñ*=Ô*=ÀaÄhÐOÑOÔOÐOåœ RÕ/@Ñ/BÔ/BÐCÑCÔCð �f‘õ
 ',Ô&6Ø¥UÔ%:ð'ñ 'ô '��lÑ#ð ˜Ô$ qÒ(Ð(Ý/4Ô/?Ø­Ô)>ð0ñ 0ô 0�EÐ+Ñ,ð ˜Ô$ð Ý(-Ô(8Ø­Ô)>ð)ñ )ô )�E˜*Ñ%ð ×Ò˜u \Ô2Ñ3Ô3Ð3Ø×Ò˜u Vœ}Ñ-Ô-Ð-à�ZÔ  1Ò$Ð$Ø$×+Ò+¨EÐ2CÔ,DÑEÔEÐEØ�ZÔ ð 4Ø× Ò   zÔ!2Ñ3Ô3Ð3ùàÐr0   c                 óº  — |                       ¦   «          d}|�5t          j        ¦   «         5   |¦   «         }ddd¦  «         n# 1 swxY w Y   | j        D ]…}g }g }g }g }g }g }	|                      |||||||	¦  «        }
t          ||||||	|d         |d         |d         |d         |d         |d         |d         |d	         |d
         |d         |
¬¦  «         Œ†|S )z°Perform a single optimization step.

        Args:
            closure (Callable, optional): A closure that reevaluates the model
                and returns the loss.
        Nr   r   r   r   r   r    r"   r#   r$   r!   )r   r   r   r   r   r    r"   r#   r$   r!   rY   )Ú'_accelerator_graph_capture_health_checkr=   Úenable_gradr8   rZ   r   )r,   ÚclosureÚlossrA   rS   rT   rU   rW   rV   rX   rY   s              r/   r2   zRMSprop.step�   sv  € ð 	×4Ò4Ñ6Ô6Ð6àˆØÐÝÔ"Ñ$Ô$ð !ð !Ø�w‘y”y�ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð Ô&ð $	ð $	ˆEØ-/ÐØ"$ˆEØ(*ˆKØ&(ˆIØ13Ð Ø(*ˆKà×*Ò*ØØ ØØØ$ØØñô ˆKõ Ø ØØØØ$ØØ˜”;Ø˜G”nØ˜%”LØ" >Ô2Ø˜zÔ*Ø˜zÔ*Ø˜iÔ(Ø˜zÔ*Ø$Ð%5Ô6Ø  Ô.Ø'ð#ñ ô ð ð ð( ˆs   ¬AÁAÁ
A)
r   r   r   r   r   FFNFF©N)Ú__name__Ú
__module__Ú__qualname__r   r?   r   Úboolr+   r7   rZ   r   r2   Ú__classcell__)r.   s   @r/   r   r      s+  ø€ € € € € ð "ØØØØØØ Ø#ØØ$ð'+ð '+àð'+ð �F‰Nð'+ð ð	'+ð
 ð'+ð ð'+ð ð'+ð ð'+ð ð'+ð ˜‘ð'+ð ð'+ð ð'+ð 
ð'+ð '+ð '+ð '+ð '+ð '+ðRð ð ð ð ð*1ð 1ð 1ðf "ð4ð 4ð 4ñ "Ô!ð4ð 4ð 4ð 4ð 4r0   aj  Implements RMSprop algorithm.

    .. math::
       \begin{aligned}
            &\rule{110mm}{0.4pt}                                                                 \\
            &\textbf{input}      : \alpha \text{ (alpha)}, \: \gamma \text{ (lr)},
                \: \theta_0 \text{ (params)}, \: f(\theta) \text{ (objective)}                   \\
            &\hspace{13mm}   \lambda \text{ (weight decay)},\: \mu \text{ (momentum)},
                \: centered, \: \epsilon \text{ (epsilon)}                                       \\
            &\textbf{initialize} : v_0 \leftarrow 0 \text{ (square average)}, \:
                \textbf{b}_0 \leftarrow 0 \text{ (buffer)}, \: g^{ave}_0 \leftarrow 0     \\[-1.ex]
            &\rule{110mm}{0.4pt}                                                                 \\
            &\textbf{for} \: t=1 \: \textbf{to} \: \ldots \: \textbf{do}                         \\
            &\hspace{5mm}g_t           \leftarrow   \nabla_{\theta} f_t (\theta_{t-1})           \\
            &\hspace{5mm}if \: \lambda \neq 0                                                    \\
            &\hspace{10mm} g_t \leftarrow g_t + \lambda  \theta_{t-1}                            \\
            &\hspace{5mm}v_t           \leftarrow   \alpha v_{t-1} + (1 - \alpha) g^2_t
                \hspace{8mm}                                                                     \\
            &\hspace{5mm} \tilde{v_t} \leftarrow v_t                                             \\
            &\hspace{5mm}if \: centered                                                          \\
            &\hspace{10mm} g^{ave}_t \leftarrow g^{ave}_{t-1} \alpha + (1-\alpha) g_t            \\
            &\hspace{10mm} \tilde{v_t} \leftarrow \tilde{v_t} -  \big(g^{ave}_{t} \big)^2        \\
            &\hspace{5mm}if \: \mu > 0                                                           \\
            &\hspace{10mm} \textbf{b}_t\leftarrow \mu \textbf{b}_{t-1} +
                g_t/ \big(\sqrt{\tilde{v_t}} +  \epsilon \big)                                   \\
            &\hspace{10mm} \theta_t \leftarrow \theta_{t-1} - \gamma \textbf{b}_t                \\
            &\hspace{5mm} else                                                                   \\
            &\hspace{10mm}\theta_t      \leftarrow   \theta_{t-1} -
                \gamma  g_t/ \big(\sqrt{\tilde{v_t}} + \epsilon \big)  \hspace{3mm}              \\
            &\rule{110mm}{0.4pt}                                                          \\[-1.ex]
            &\bf{return} \:  \theta_t                                                     \\[-1.ex]
            &\rule{110mm}{0.4pt}                                                          \\[-1.ex]
       \end{aligned}

    For further details regarding the algorithm we refer to
    `lecture notes <https://www.cs.toronto.edu/~tijmen/csc321/slides/lecture_slides_lec6.pdf>`_ by G. Hinton.
    and centered version `Generating Sequences
    With Recurrent Neural Networks <https://arxiv.org/pdf/1308.0850v5.pdf>`_.
    The implementation here takes the square root of the gradient average before
    adding epsilon (note that TensorFlow interchanges these two operations). The effective
    learning rate is thus :math:`\gamma/(\sqrt{v} + \epsilon)` where :math:`\gamma`
    is the scheduled learning rate and :math:`v` is the weighted moving average
    of the squared gradient.
    z
    Args:
        a0  
        lr (float, Tensor, optional): learning rate (default: 1e-2)
        alpha (float, optional): smoothing constant (default: 0.99)
        eps (float, optional): term added to the denominator to improve
            numerical stability (default: 1e-8)
        weight_decay (float, optional): weight decay (L2 penalty) (default: 0)
        momentum (float, optional): momentum factor (default: 0)
        centered (bool, optional) : if ``True``, compute the centered RMSProp,
            the gradient is normalized by an estimation of its variance
        z	
        z

    r   rT   rU   rW   rV   rX   r   r   r   r   r   r    r#   r$   r!   rY   r%   c       
         ó,  — t           j                             ¦   «         st          |¦  «        }t	          | ¦  «        D �]U\  }}||         }t           j                             ¦   «         sK|rIt          ¦   «         }|j        j	        |j        j	        k    r|j        j	        |v st          d|› d�¦  «        ‚||         }|s|n| }||         }|dz  }|	dk    r|                     ||	¬¦  «        }t          j        |¦  «        }|r<t          j        |¦  «        }t          j        |¦  «        }t          j        |¦  «        }|                     |¦  «                             ||d|z
  ¬¦  «         |rb||         }|rt          j        |¦  «        }|                     |d|z
  ¦  «         |                     ||d¬¦  «                             ¦   «         }n|                     ¦   «         }|r|                     |¦  «        }n|                     |¦  «        }|
dk    ra||         }|rt          j        |¦  «        }|                     |
¦  «                             ||¦  «         |                     || ¬¦  «         �Œ<|                     ||| ¬¦  «         �ŒWd S )NúIIf capturable=True, params and state_steps must be on supported devices: ú.r   r   ©r   ©Úvalueéÿÿÿÿ)r=   ÚjitÚis_scriptingr   Ú	enumerateÚcompilerÚis_compilingr   r5   ÚtypeÚAssertionErrorÚaddrL   Úview_as_realÚmul_Úaddcmul_Úlerp_ÚaddcmulÚsqrt_ÚsqrtÚadd_Úaddcdiv_)r   rT   rU   rW   rV   rX   r   r   r   r   r   r    r#   r$   r!   rY   ÚiÚparamr2   Úcapturable_supported_devicesrK   rH   Úis_complex_paramrJ   ÚavgÚbufs                             r/   Ú_single_tensor_rmspropr„   	  s¬  € õ& Œ9×!Ò!Ñ#Ô#ð Ý˜‰^Œ^ˆå˜fÑ%Ô%ð 41ñ 41‰ˆˆ5Ø˜1Œ~ˆõ Œ~×*Ò*Ñ,Ô,ð 	°ð 	Ý+LÑ+NÔ+NÐ(à”Ô! T¤[Ô%5Ò5Ð5Ø”LÔ%Ð)EÐEÐEå$ØÐ`|ÐÐÐñô ð ð �QŒxˆØ#Ð.ˆtˆt¨$¨ˆØ  ”^ˆ
à�‰	ˆà˜1ÒÐØ—8’8˜E¨�8Ñ6Ô6ˆDå Ô+¨EÑ2Ô2ÐØð 	8ÝÔ& uÑ-Ô-ˆEÝÔ% dÑ+Ô+ˆDÝÔ+¨JÑ7Ô7ˆJà�Š˜ÑÔ×'Ò'¨¨d¸!¸e¹)Ð'ÑDÔDÐDàð 	$Ø  ”|ˆHØð 8Ý Ô-¨hÑ7Ô7�Ø�NŠN˜4  U¡Ñ+Ô+Ð+Ø×$Ò$ X¨x¸rÐ$ÑBÔB×HÒHÑJÔJˆCˆCà—/’/Ñ#Ô#ˆCàð 	 Ø—'’'˜#‘,”,ˆCˆCà—(’(˜3‘-”-ˆCà�aŠ<ˆ<Ø& qÔ)ˆCØð .ÝÔ(¨Ñ-Ô-�Ø�HŠH�XÑÔ×'Ò'¨¨cÑ2Ô2Ð2Ø�JŠJ�s 2 #ˆJÑ&Ô&Ð&Ñ&à�NŠN˜4 ¨R¨CˆNÑ0Ô0Ð0Ñ0ði41ð 41r0   c       
         ó	  ‡!— t          | ¦  «        dk    rd S |rt          d¦  «        ‚t          j                             ¦   «         sN|rLt          ¦   «         Š!t          ˆ!fd„t          | |d¬¦  «        D ¦   «         ¦  «        st          d‰!› d�¦  «        ‚t          |¦  «        }t          j
        | |||||g¦  «        }|                     ¦   «         D �]¸\  \  }}}}}}}t          t          t                   |¦  «        }t          t          t                   |¦  «        }t          t          t                   |¦  «        }t          t          t                   |¦  «        }|rƒ||g}|
dk    r5t          t          t                   |¦  «        }|                     |¦  «         |r5t          t          t                   |¦  «        }|                     |¦  «         t!          |g|¢R Ž  |rt          j        |¦  «        }t          j                             ¦   «         s9|d         j        r,t          j        |t          j        dd	¬
¦  «        d¬¦  «         nt          j        |d¦  «         |	dk    r1|rt          j        |||	¬¦  «         nt          j        |||	¬¦  «        }t          j        ||¦  «         t          j        |||d|z
  ¬¦  «         |r{t          t          t                   |¦  «        }t          j        ||d|z
  ¦  «         t          j        |||d¬¦  «        }t          j        |¦  «         t          j        ||¦  «         n)t          j        |¦  «        }t          j        ||¦  «         |
dk    r®t          t          t                   |¦  «        }t          j        ||
¦  «         t          j        |||¦  «         |rGt;          |t          j        ¦  «        r-t          j        || ¦  «        } t          j        || ¦  «         �Œ;t          j        ||| ¬¦  «         �ŒU|rHt;          |t          j        ¦  «        r.t          j        || ¦  «         t          j        |||¦  «         �ŒŸt          j        |||| ¬¦  «         �Œºd S )Nr   z#_foreach ops don't support autogradc              3   ón   •K  — | ]/\  }}|j         j        |j         j        k    o|j         j        ‰v V — Œ0d S r`   )r5   rr   )Ú.0rB   r2   r€   s      €r/   ú	<genexpr>z(_multi_tensor_rmsprop.<locals>.<genexpr>r  s]   øè è € ð 
ð 
ñ ��4ð ŒHŒM˜Tœ[Ô-Ò-ð >Ø””Ð!=Ð=ð
ð 
ð 
ð 
ð 
ð 
r0   T)Ústrictrg   rh   g      ð?Úcpu)r5   ri   r   rj   rl   ) r<   rs   r=   rp   rq   r   ÚallÚzipr   r   Ú"_group_tensors_by_device_and_dtypeÚvaluesr   Úlistr   rM   r   Ú_foreach_negÚis_cpuÚ_foreach_add_r@   Ú_foreach_addÚ_foreach_mul_Ú_foreach_addcmul_Ú_foreach_lerp_Ú_foreach_addcmulÚ_foreach_sqrt_Ú_foreach_sqrtÚ_foreach_addcdiv_r'   Ú_foreach_mulÚ_foreach_div_)"r   rT   rU   rW   rV   rX   r   r   r   r   r   r    r#   r$   r!   rY   Úgrouped_tensorsÚgrouped_params_Úgrouped_grads_Úgrouped_square_avgs_Úgrouped_grad_avgs_Úgrouped_momentum_buffer_list_Úgrouped_state_steps_Ú_Úgrouped_paramsÚgrouped_gradsÚgrouped_square_avgsÚgrouped_state_stepsÚstate_and_gradsÚgrouped_momentum_buffer_listÚgrouped_grad_avgsr‚   Úmomentum_lrr€   s"                                    @r/   Ú_multi_tensor_rmspropr­   V  s  ø€ õ& ˆ6�{„{�aÒÐØˆàð DÝÐBÑCÔCÐCõ Œ>×&Ò&Ñ(Ô(ð 	¨Zð 	Ý'HÑ'JÔ'JÐ$Ýð 
ð 
ð 
ð 
õ ˜v {¸4Ð@Ñ@Ô@ð
ñ 
ô 
ñ 
ô 
ð 	õ
 !Ø{Ð\xÐ{Ð{Ð{ñô ð õ 
�B‰Œ€BåÔBØ	�˜ YÐ0DÀkÐRñô €Oð ×"Ò"Ñ$Ô$ðYWñ YWñ 			ñ	
ØØØ ØØ)Ø àÝ�d¥6œl¨OÑ<Ô<ˆÝ�T¥&œ\¨>Ñ:Ô:ˆÝ"¥4­¤<Ð1EÑFÔFÐÝ"¥4­¤<Ð1EÑFÔFÐàð 
	<Ø,Ð.AÐBˆOØ˜!Š|ˆ|Ý/3Ý�”LÐ"?ñ0ô 0Ð,ð  ×&Ò&Ð'CÑDÔDÐDØð :Ý$(­­f¬Ð7IÑ$JÔ$JÐ!Ø×&Ò&Ð'8Ñ9Ô9Ð9Ý˜.Ð;¨?Ð;Ð;Ð;Ð;àð 	>Ý!Ô.¨}Ñ=Ô=ˆMõ Œ~×*Ò*Ñ,Ô,ð 	8Ð1DÀQÔ1GÔ1Nð 	8ÝÔØ#¥U¤\°#¸eÐ%DÑ%DÔ%DÈCðñ ô ð ð õ ÔÐ 3°QÑ7Ô7Ð7à˜1ÒÐàð ÝÔ# M°>ÈÐVÑVÔVÐVÐVå %Ô 2Ø! >¸ð!ñ !ô !�õ 	ÔÐ/°Ñ7Ô7Ð7ÝÔØ °ÀQÈÁYð	
ñ 	
ô 	
ð 	
ð ð 
	*Ý $¥T­&¤\Ð3EÑ FÔ FÐÝÔ Ð!2°MÀ1ÀuÁ9ÑMÔMÐMÝÔ(Ø#Ð%6Ð8IÐQSðñ ô ˆCõ Ô  Ñ%Ô%Ð%ÝÔ  SÑ)Ô)Ð)Ð)åÔ%Ð&9Ñ:Ô:ˆCÝÔ  SÑ)Ô)Ð)à�aŠ<ˆ<Ý+/Ý•V”Ð;ñ,ô ,Ð(õ ÔÐ <¸hÑGÔGÐGÝÔ#Ð$@À-ÐQTÑUÔUÐUð ð �j¨­U¬\Ñ:Ô:ð Ý#Ô0Ð1MÐPRÈsÑSÔS�ÝÔ# N°KÑ@Ô@Ð@Ñ@åÔ#Ø"Ð$@ÈÈðñ ô ð ñ ð ð W�j¨­U¬\Ñ:Ô:ð WÝÔ# C¨"¨Ñ-Ô-Ð-ÝÔ'¨¸ÀsÑKÔKÐKÑKåÔ'¨¸ÀsÐSUÐRUÐVÑVÔVÐVÑVðsYWð YWr0   )Úsingle_tensor_fnFr"   c                ó²  — t           j                             ¦   «         s(t          d„ |D ¦   «         ¦  «        st	          d¦  «        ‚|€t          | |d¬¦  «        \  }}|r-t           j                             ¦   «         rt	          d¦  «        ‚|r&t           j                             ¦   «         st          }nt          } || |||||||||||||	||
¬¦  «         dS )ztFunctional API that performs rmsprop algorithm computation.

    See :class:`~torch.optim.RMSProp` for details.
    c              3   óJ   K  — | ]}t          |t          j        ¦  «        V — Œd S r`   )r'   r=   r   )r‡   Úts     r/   rˆ   zrmsprop.<locals>.<genexpr>ù  s?   è è € ð 5ð 5Ø()�
�1•e”lÑ#Ô#ð5ð 5ð 5ð 5ð 5ð 5r0   zPAPI has changed, `state_steps` argument must contain a list of singleton tensorsNF)Ú	use_fusedz6torch.jit.script not supported with foreach optimizers)
r   r   r   r   r   r    r#   r!   r$   rY   )
r=   rp   rq   r‹   rO   r   rm   rn   r­   r„   )r   rT   rU   rW   rV   rX   r"   r#   r$   r!   rY   r   r   r   r   r   r    r¤   Úfuncs                      r/   r   r   Ü  s0  € õ: Œ>×&Ò&Ñ(Ô(ð 
µð 5ð 5Ø-8ð5ñ 5ô 5ñ 2ô 2ð 
õ Ø^ñ
ô 
ð 	
ð €Ý1Ø�N¨eð
ñ 
ô 
‰
ˆˆ7ð ð U•5”9×)Ò)Ñ+Ô+ð UÝÐSÑTÔTÐTàð &•u”y×-Ò-Ñ/Ô/ð &Ý$ˆˆå%ˆà€DØØØØØØØØØØ!ØØØØØ%Øð!ñ ô ð ð ð r0   )NFFFF)Ú__doc__Útypingr   r=   r   Ú	optimizerr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   Ú__all__r   r�   r?   rd   r„   r­   r   rF   r0   r/   ú<module>r¸      s™  ðà 0Ð 0à Ð Ð Ð Ð Ð à €€€Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð$ �iÐ
 €ðgð gð gð gð gˆiñ gô gð gðV+ðXà	ðð ð 
ðð ð 
ðð ð 
ðð ð 
ðð ð ñY<ð „ðBJ1Ø�ŒLðJ1à�Œ<ðJ1ð �f”ðJ1ð �FŒ|ð	J1ð
 ˜vœ,ðJ1ð �f”ðJ1ð 	ðJ1ð ðJ1ð 
ðJ1ð ðJ1ð ðJ1ð ðJ1ð ðJ1ð ðJ1ð  ð!J1ð" ð#J1ð$ 
ð%J1ð J1ð J1ð J1ðZCWØ�ŒLðCWà�Œ<ðCWð �f”ðCWð �FŒ|ð	CWð
 ˜vœ,ðCWð �f”ðCWð 	ðCWð ðCWð 
ðCWð ðCWð ðCWð ðCWð ðCWð ðCWð  ð!CWð" ð#CWð$ 
ð%CWð CWð CWð CWðL  ÐÐ1GÐHÑHÔHð  ØØ ØØðAð AØ�ŒLðAà�Œ<ðAð �f”ðAð �FŒ|ð	Að
 ˜vœ,ðAð �f”ðAð �D‰[ðAð ðAð ðAð ðAð ðAð 	ðAð  ð!Að" 
ð#Að$ ð%Að& ð'Að( ð)Að* 
ð+Að Að Añ IÔHðAð Að Ar0   