§
    �Štj5a  ã            $       óŽ  — 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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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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d#edz  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 RAdam 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Ú
_get_valueÚ_maximize_docÚ_params_docÚ
_to_scalarÚ_use_grad_for_differentiableÚ_view_as_realÚ	OptimizerÚParamsTÚRAdamÚradamc                   ó¨   ‡ — e Zd Z	 	 	 	 	 ddddddœded	eez  d
eeef         dededededz  dedededdfˆ fd„Zˆ fd„Z	d„ Z
edd„¦   «         Zˆ xZS )r   çü©ñÒMbP?©gÍÌÌÌÌÌì?g+‡ÙÎ÷ï?ç:Œ0âŽyE>r   FN)ÚforeachÚmaximizeÚ
capturableÚdifferentiableÚparamsÚlrÚbetasÚepsÚweight_decayÚdecoupled_weight_decayr   r   r   r   Úreturnc          
      ó   •— t          |t          ¦  «        r'|                     ¦   «         dk    r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œ	}t	          ¦   «                              ||¦  «         d S )Nr   zTensor lr must be 1-elementç        zInvalid learning rate: zInvalid epsilon value: r   ç      ð?z#Invalid beta parameter at index 0: z#Invalid beta parameter at index 1: zInvalid weight_decay value: )	r    r!   r"   r#   r   r   r   r$   r   )Ú
isinstancer   ÚnumelÚ
ValueErrorÚsuperÚ__init__)Úselfr   r    r!   r"   r#   r$   r   r   r   r   ÚdefaultsÚ	__class__s               €úO/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torch/optim/radam.pyr-   zRAdam.__init__    s_  ø€ õ �b�&Ñ!Ô!ð 	< b§h¢h¡j¤j°A¢o oÝÐ:Ñ;Ô;Ð;Ø�bŠyˆyÝÐ;°rÐ;Ð;Ñ<Ô<Ð<Ø�cŠzˆzÝÐ<°sÐ<Ð<Ñ=Ô=Ð=Ø�e˜A”hÐ$Ð$Ò$Ð$ Ò$Ð$Ð$Ð$ÝÐMÀ5ÈÄ8ÐMÐMÑNÔNÐNØ�e˜A”hÐ$Ð$Ò$Ð$ Ò$Ð$Ð$Ð$ÝÐMÀ5ÈÄ8ÐMÐMÑNÔNÐNØ�lÒ"Ð"ÝÐJ¸LÐJÐJÑKÔKÐKð ØØØ(Ø ØØ$Ø&<Ø,ð

ð 

ˆõ 	‰Œ×Ò˜ Ñ*Ô*Ð*Ð*Ð*ó    c                 ó¸  •— t          ¦   «                              |¦  «         | j        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	<   Œµ�Œ0d S )Nr   r   Fr   r$   r   r   r   Ústep©ÚdtypeÚdevice©r6   )r,   Ú__setstate__Úparam_groupsÚ
setdefaultÚstateÚgetÚlenÚtorchÚ	is_tensorÚfloatÚtensorr   r7   )r.   r<   ÚgroupÚpÚp_stateÚstep_valr0   s         €r1   r9   zRAdam.__setstate__H   sf  ø€ Ý‰Œ×Ò˜UÑ#Ô#Ð#ØÔ&ð 	ñ 	ˆEØ×Ò˜Y¨Ñ-Ô-Ð-Ø×Ò˜Z¨Ñ/Ô/Ð/Ø×ÒÐ-¨uÑ5Ô5Ð5Ø×ÒÐ5°uÑ=Ô=Ð=Ø×Ò˜\¨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øñ	
ð	ð 	r2   c                 ó  — d}|d         D �]x}|j         ��m|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<   t          j        |t          j        ¬¦  «        |	d<   |                     |	d         ¦  «         |                     |	d         ¦  «         |                     |	d
         ¦  «         �Œz|S )NFr   z'RAdam does not support sparse gradientsr   r   © r5   r'   r8   r4   )Úmemory_formatÚexp_avgÚ
exp_avg_sq)Úgradr?   Ú
is_complexÚappendÚ	is_sparseÚRuntimeErrorr<   r>   Úzerosr   r7   rB   Ú
zeros_likeÚpreserve_format)
r.   rC   Úparams_with_gradÚgradsÚexp_avgsÚexp_avg_sqsÚstate_stepsÚhas_complexrD   r<   s
             r1   Ú_init_groupzRAdam._init_group\   s†  € ð ˆØ�x”ð 	2ñ 	2ˆAØŒvÑ!Ø�uÔ/°Ñ2Ô2Ñ2�Ø ×'Ò'¨Ñ*Ô*Ð*Ø”6Ô#ð RÝ&Ð'PÑQÔQÐQØ—’˜QœVÑ$Ô$Ð$àœ
 1œ�å�u‘:”: ’?�?ð ! Ô.ðJ�œ BÕ.?Ñ.AÔ.AÈ!Ì(ÐSÑSÔSÐSå"œ\¨#Õ5FÑ5HÔ5HÐIÑIÔIð ˜&‘Mõ (-Ô'7Ø­Ô)>ð(ñ (ô (�E˜)Ñ$õ +0Ô*:Ø­Ô)>ð+ñ +ô +�E˜,Ñ'ð —’  iÔ 0Ñ1Ô1Ð1Ø×"Ò" 5¨Ô#6Ñ7Ô7Ð7Ø×"Ò" 5¨¤=Ñ1Ô1Ð1ùàÐr2   c                 óú  — |                       ¦   «          d}|�5t          j        ¦   «         5   |¦   «         }ddd¦  «         n# 1 swxY w Y   | j        D ]¥}g }g }g }g }g }t	          t
          t          t          f         |d         ¦  «        \  }	}
|                      ||||||¦  «        }t          ||||||	|
|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$   )Úbeta1Úbeta2r    r#   r"   r   r   r   r   r$   rY   )	Ú'_accelerator_graph_capture_health_checkr?   Úenable_gradr:   r   ÚtuplerA   rZ   r   )r.   ÚclosureÚlossrC   rT   rU   rV   rW   rX   r\   r]   rY   s               r1   r4   z
RAdam.step   s~  € ð 	×4Ò4Ñ6Ô6Ð6àˆØÐÝÔ"Ñ$Ô$ð !ð !Ø�w‘y”y�ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð Ô&ð 	ð 	ˆEØ-/ÐØ"$ˆEØ%'ˆHØ(*ˆKØ(*ˆKÝ¥¥e­U lÔ 3°U¸7´^ÑDÔD‰LˆE�5à×*Ò*ØÐ'¨°¸+À{ñô ˆKõ Ø ØØØØØØØ˜”;Ø" >Ô2Ø˜%”LØ˜zÔ*Ø˜iÔ(Ø  Ô.Ø$Ð%5Ô6Ø',Ð-EÔ'FØ'ð!ñ ô ð ð ð& ˆs   ¬AÁAÁ
A)r   r   r   r   F©N)Ú__name__Ú
__module__Ú__qualname__r   rA   r   r`   Úboolr-   r9   rZ   r   r4   Ú__classcell__)r0   s   @r1   r   r      s3  ø€ € € € € ð "Ø%1ØØØ',ð&+ð  $ØØ Ø$ð&+ð &+ð &+àð&+ð �F‰Nð&+ð �U˜E�\Ô"ð	&+ð
 ð&+ð ð&+ð !%ð&+ð ˜‘ð&+ð ð&+ð ð&+ð ð&+ð 
ð&+ð &+ð &+ð &+ð &+ð &+ðPð ð ð ð ð(!ð !ð !ðF "ð-ð -ð -ñ "Ô!ð-ð -ð -ð -ð -r2   a  Implements RAdam algorithm.

    .. math::
       \begin{aligned}
            &\rule{110mm}{0.4pt}                                                                 \\
            &\textbf{input}      : \gamma \text{ (lr)}, \: \beta_1, \beta_2
                \text{ (betas)}, \: \theta_0 \text{ (params)}, \:f(\theta) \text{ (objective)}, \:
                \lambda \text{ (weightdecay)}, \:\textit{maximize}                               \\
            &\hspace{13mm} \epsilon \text{ (epsilon)}, \textit{decoupled\_weight\_decay}         \\
            &\textbf{initialize} :  m_0 \leftarrow 0 \text{ ( first moment)},
                v_0 \leftarrow 0 \text{ ( second moment)},                                       \\
            &\hspace{18mm} \rho_{\infty} \leftarrow 2/(1-\beta_2) -1                      \\[-1.ex]
            &\rule{110mm}{0.4pt}  \\
            &\textbf{for} \: t=1 \: \textbf{to} \: \ldots \: \textbf{do}                         \\
            &\hspace{6mm}\textbf{if} \: \textit{maximize}:                                       \\
            &\hspace{12mm}g_t           \leftarrow   -\nabla_{\theta} f_t (\theta_{t-1})         \\
            &\hspace{6mm}\textbf{else}                                                           \\
            &\hspace{12mm}g_t           \leftarrow   \nabla_{\theta} f_t (\theta_{t-1})          \\
            &\hspace{6mm} \theta_t \leftarrow \theta_{t-1}                                       \\
            &\hspace{6mm} \textbf{if} \: \lambda \neq 0                                          \\
            &\hspace{12mm}\textbf{if} \: \textit{decoupled\_weight\_decay}                       \\
            &\hspace{18mm} \theta_t \leftarrow \theta_{t} - \gamma \lambda \theta_{t}            \\
            &\hspace{12mm}\textbf{else}                                                          \\
            &\hspace{18mm} g_t \leftarrow g_t + \lambda \theta_{t}                               \\
            &\hspace{6mm}m_t           \leftarrow   \beta_1 m_{t-1} + (1 - \beta_1) g_t          \\
            &\hspace{6mm}v_t           \leftarrow   \beta_2 v_{t-1} + (1-\beta_2) g^2_t          \\
            &\hspace{6mm}\widehat{m_t} \leftarrow   m_t/\big(1-\beta_1^t \big)                   \\
            &\hspace{6mm}\rho_t \leftarrow \rho_{\infty} -
                2 t \beta^t_2 /\big(1-\beta_2^t \big)                                    \\[0.1.ex]
            &\hspace{6mm}\textbf{if} \: \rho_t > 5                                               \\
            &\hspace{12mm} l_t \leftarrow \frac{\sqrt{ (1-\beta^t_2) }}{ \sqrt{v_t} +\epsilon  } \\
            &\hspace{12mm} r_t \leftarrow
      \sqrt{\frac{(\rho_t-4)(\rho_t-2)\rho_{\infty}}{(\rho_{\infty}-4)(\rho_{\infty}-2) \rho_t}} \\
            &\hspace{12mm}\theta_t \leftarrow \theta_t - \gamma \widehat{m_t} r_t l_t        \\
            &\hspace{6mm}\textbf{else}                                                           \\
            &\hspace{12mm}\theta_t \leftarrow \theta_t - \gamma \widehat{m_t}                \\
            &\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 `On the variance of the adaptive learning rate and beyond`_.

    This implementation provides an option to use either the original weight_decay implementation as in Adam
    (where the weight_decay is applied to the gradient) or the one from AdamW (where weight_decay is applied
    to the weight) through the decoupled_weight_decay option. When decoupled_weight_decay is set to False
    (default), it uses the original Adam style weight decay, otherwise, it uses the AdamW style which
    corresponds more closely to the `author's implementation`_ in the RAdam paper. Further information
    about decoupled weight decay can be found in `Decoupled Weight Decay Regularization`_.

    z
    Args:
        a¦  
        lr (float, Tensor, optional): learning rate (default: 1e-3)
        betas (Tuple[float, float], optional): coefficients used for computing
            running averages of gradient and its square (default: (0.9, 0.999))
        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)
        decoupled_weight_decay (bool, optional): whether to decouple the weight
            decay as in AdamW to obtain RAdamW. If True, the algorithm does not
            accumulate weight decay in the momentum nor variance. (default: False)
        z	
        a  

    .. _On the variance of the adaptive learning rate and beyond:
        https://arxiv.org/abs/1908.03265
    .. _author's implementation:
        https://github.com/LiyuanLucasLiu/RAdam
    .. _Decoupled Weight Decay Regularization:
        https://arxiv.org/abs/1711.05101

    r   rU   rV   rW   rX   r\   r]   r    r#   r"   r$   r   r   r   rY   r%   c       
         ó|  ‡	‡‡‡‡‡— t           j                             ¦   «         st          |¦  «        }t	          | ¦  «        D �]w\  }}|s||         n||          }||         }||         Š||         }t           j                             ¦   «         sK|rIt          ¦   «         }|j        j	        |j        j	        k    r|j        j	        |v st          d|› d�¦  «        ‚t          j        |¦  «        rPt          j        |¦  «        }t          j        |¦  «        }t          j        |¦  «        }t          j        ‰¦  «        Š|dz  }|r|nt          |¦  «        }|dk    r5|
r|                     d||z  z
  ¦  «         n|                     ||¬¦  «        }|                     |d|z
  ¦  «         ‰                     |¦  «                             ||d|z
  ¬¦  «         d||z  z
  }d||z  z
  Š||z  }dd|z
  z  dz
  Š‰d|z  ||z  z  ‰z  z
  Šˆˆfd„}ˆˆˆ	ˆfd	„}|rLt          j        ‰d
k     |¦   «          |¦   «         z  d¦  «        }|                     ||z  |z  d¬¦  «         �Œ%‰d
k    r2|                     ||z   |¦   «         z   |¦   «         z  d¬¦  «         �Œ]|                     ||z  d¬¦  «         �Œyd S )NúIIf capturable=True, params and state_steps must be on supported devices: ú.r   r   ©Úalpha)Úvalueé   c                  óD   •— ‰dz
  ‰dz
  z  ‰ z  ‰ dz
  ‰ dz
  z  ‰z  z  dz  S )Né   ro   ç      à?rH   )Úrho_infÚrho_ts   €€r1   Ú_compute_rectz+_single_tensor_radam.<locals>._compute_rectE  sI   ø€ à˜‘Ø˜1‘9ñàñð ˜a‘K G¨a¡KÑ0°5Ñ8ñ:ð ñð r2   c                  ó–   •— ‰                      ¦   «         } ‰r|                      ‰¦  «        } n|                      ‰¦  «        } ‰dz  | z  S )Nrr   )ÚsqrtÚaddÚadd_)Úexp_avg_sq_sqrtÚbias_correction2r   r"   rK   s    €€€€r1   Ú_compute_adaptive_lrz2_single_tensor_radam.<locals>._compute_adaptive_lrM  sR   ø€ Ø(ŸošoÑ/Ô/ˆOØð <Ø"1×"5Ò"5°cÑ":Ô":��à"1×"6Ò"6°sÑ";Ô";�à$ cÑ)¨_Ñ<Ð<r2   ç      @r(   g      ð¿)r?   ÚjitÚis_scriptingr   Ú	enumerateÚcompilerÚis_compilingr   r7   ÚtypeÚAssertionErrorrM   Úview_as_realr   Úmul_rx   Úlerp_Úaddcmul_Úwherery   )r   rU   rV   rW   rX   r\   r]   r    r#   r"   r$   r   r   r   rY   ÚiÚparamrL   rJ   Ústep_tÚcapturable_supported_devicesr4   Úbias_correction1Úbias_corrected_exp_avgru   r|   Úupdater{   rK   rs   rt   s            ` `               @@@@r1   Ú_single_tensor_radamr‘      s~  øøøøøø€ õ$ Œ9×!Ò!Ñ#Ô#ð Ý˜‰^Œ^ˆå˜fÑ%Ô%ð QDñ QD‰ˆˆ5Ø'Ð6ˆu�QŒxˆx¨e°A¬h¨YˆØ˜1”+ˆØ  ”^ˆ
Ø˜Q”ˆõ Œ~×*Ò*Ñ,Ô,ð 	°ð 	Ý+LÑ+NÔ+NÐ(à”Ô! V¤]Ô%7Ò7Ð7Ø”LÔ%Ð)EÐEÐEå$ØÐ`|ÐÐÐñô ð õ Ô˜EÑ"Ô"ð 	8ÝÔ& uÑ-Ô-ˆEÝÔ% dÑ+Ô+ˆDÝÔ(¨Ñ1Ô1ˆGÝÔ+¨JÑ7Ô7ˆJð 	�!‰ˆØ#Ð;ˆvˆv­°FÑ);Ô);ˆà˜1ÒÐØ%ð ;Ø—
’
˜1˜r LÑ0Ñ0Ñ1Ô1Ð1Ð1à—x’x ¨\�xÑ:Ô:�ð 	�Š�d˜A ™IÑ&Ô&Ð&Ø�Š˜ÑÔ×'Ò'¨¨d¸!¸e¹)Ð'ÑDÔDÐDà˜u d™{™?ÐØ˜u d™{™?Ðð ")Ð+;Ñ!;Ðð �q˜5‘y‘/ AÑ%ˆà˜!˜d™( e¨T¡kÑ2Ð5EÑEÑEˆð	ð 	ð 	ð 	ð 	ð 	ð	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð ð 	DÝ”[Ø˜’˜]˜]™_œ_Ð/CÐ/CÑ/EÔ/EÑEÀsñô ˆFð �JŠJÐ-°Ñ2°VÑ;À4ˆJÑHÔHÐHÑHà�sŠ{ˆ{Ø—
’
Ø*Øñà*Ð*Ñ,Ô,ñ-ð $�m‘o”oñ&ð ð ñ ô ð ñ ð —
’
Ð1°BÑ6¸d�
ÑCÔCÐCÑCðcQDð QDr2   c       
         óÎ  ‡‡‡‡%‡&— t          | ¦  «        dk    rd S |rt          d¦  «        ‚t          j                             ¦   «         sP|rNt          d¬¦  «        Š%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                   |¦  «        }t          t          t                   |¦  «        }t          j                             ¦   «         s9|d         j        r,t          j        |t          j        d
d¬¦  «        d
¬¦  «         nt          j        |d¦  «         |rt%          ||||¦  «         |rt          j        |¦  «        }dd‰z
  z  dz
  Š&|r¾t          j        ‰|¦  «        }t          j        |¦  «         t          j        |d¦  «         t          j        ‰|¦  «        }t          j        ||¦  «         t          j        |d¦  «         t          j        ||¦  «         t          j        |¦  «         t          j        |‰&¦  «         |}nˆˆ&fd„|D ¦   «         }|dk    rO|
rt          j        |d‰|z  z
  ¦  «         n1|rt          j        |||¬¦  «         nt          j        |||¬¦  «        }t          j        ||d‰z
  ¦  «         t          j        |‰¦  «         t          j        |||d‰z
  ¦  «         ~|�rít          j        |d¦  «        }t          j        |d¦  «        }t          j        ||¦  «         ~t          j        |‰&¦  «         ‰&dz
  ‰&dz
  z  Š&t          j        |‰&¦  «        } t          j        || ¦  «         ~ t          j        |¦  «         d„ t          ||d¬¦  «        D ¦   «         }!~~d„ |!D ¦   «         }"t          j        |"‰¦  «         t          j        ‰|¦  «        }t          j        |¦  «         t          j        |d¦  «         t          j        |"|¦  «         t          j        |"¦  «         t          j        ‰|¦  «        }t          j        |¦  «         t          j        |d¦  «         t          j        |¦  «         t          j        |‰¦  «         t          j        ||!¦  «         ~!t          j        |¦  «         t          j        ||¦  «         ~nfˆ&fd„|D ¦   «         }!d„ |!D ¦   «         }#ˆfd„|D ¦   «         }ˆfd„t          |#|d¬¦  «        D ¦   «         }"ˆˆfd„t          ||!|d¬¦  «        D ¦   «         }t          j        |¦  «        }$t          j        |$|	¦  «         t          j        |$|¦  «         t          j        |$¦  «         t          j        |$|"¦  «         t          j        |||$¦  «         �Œ�d S )Nr   z#_foreach ops don't support autogradF)Úsupports_xlac              3   ón   •K  — | ]/\  }}|j         j        |j         j        k    o|j         j        ‰v V — Œ0d S rc   )r7   rƒ   )Ú.0rD   r4   r�   s      €r1   ú	<genexpr>z&_multi_tensor_radam.<locals>.<genexpr>†  s]   øè è € ð 
ð 
ñ ��4ð ŒHŒM˜Tœ[Ô-Ò-ð >Ø””Ð!=Ð=ð
ð 
ð 
ð 
ð 
ð 
r2   T)Ústrictrj   rk   r(   Úcpu)r7   rl   r   ro   c           	      óŒ   •— g | ]@}‰d t          |¦  «        z  ‰t          |¦  «        z  z  d‰t          |¦  «        z  z
  z  z
  ‘ŒAS )ro   r   ©r   )r•   r4   r]   rs   s     €€r1   ú
<listcomp>z'_multi_tensor_radam.<locals>.<listcomp>Æ  st   ø€ ð ð ð ð ð ØÝ˜TÑ"Ô"ñ#à�J tÑ,Ô,Ñ,ñ.ð �u¥
¨4Ñ 0Ô 0Ñ0Ñ0ñ2ñ2ðð ð r2   rq   c                 óH   — g | ]\  }}t          j        |d k    |d¦  «        ‘Œ S )r}   r'   ©r?   r‰   )r•   Únrt   s      r1   r›   z'_multi_tensor_radam.<locals>.<listcomp>õ  s>   € ð ð ð á�A�uõ ”˜E CšK¨¨CÑ0Ô0ðð ð r2   c                 óB   — g | ]}t          j        |d k    dd¦  «        ‘ŒS )r   r'   r(   r�   ©r•   Úrects     r1   r›   z'_multi_tensor_radam.<locals>.<listcomp>û  s*   € ÐQÐQÐQÀD¥¤¨D°1ªH°c¸3Ñ ?Ô ?ÐQÐQÐQr2   c                 ó`   •— g | ]*}|d k    r |dz
  |dz
  z  ‰z  ‰dz
  ‰dz
  z  |z  z  dz  nd‘Œ+S )é   rq   ro   rr   r   rH   )r•   rt   rs   s     €r1   r›   z'_multi_tensor_radam.<locals>.<listcomp>  s~   ø€ ð ð ð ð ð ˜1’9�9ð ˜Q‘YØ˜q‘yñ"àñð   !™¨°!©Ñ4°uÑ<ñ>ð
 ñð ð ðð ð r2   c                 ó"   — g | ]}|d k    rd nd‘ŒS )r   r(   rH   r    s     r1   r›   z'_multi_tensor_radam.<locals>.<listcomp>  s$   € ÐCÐCÐC°d  q¢ ˜1˜1¨cÐCÐCÐCr2   c                 ó:   •— g | ]}d ‰t          |¦  «        z  z
  ‘ŒS )r   rš   )r•   r4   r\   s     €r1   r›   z'_multi_tensor_radam.<locals>.<listcomp>  s8   ø€ ð  ð  ð  Ø26��E�Z¨Ñ-Ô-Ñ-Ñ-ð ð  ð  r2   c                 ó,   •— g | ]\  }}‰|z  |z  d z  ‘ŒS )éÿÿÿÿrH   )r•   r¡   Úbcr    s      €r1   r›   z'_multi_tensor_radam.<locals>.<listcomp>!  s:   ø€ ð  ð  ð  á�D˜"ð �d‘˜R‘ 2Ñ%ð ð  ð  r2   c                 ó`   •— g | ]*\  }}}d ‰t          |¦  «        z  z
  dz  ‰|z  |z  z  dz  ‘Œ+S )r   rr   r§   rš   )r•   r4   r¡   r¨   r]   r    s       €€r1   r›   z'_multi_tensor_radam.<locals>.<listcomp>%  sX   ø€ ð  ð  ð  á"�D˜$ ð �e�z¨$Ñ/Ô/Ñ/Ñ/°CÑ7¸BÀ¹IÈ¹NÑKÈbÑPð ð  ð  r2   ) r>   r„   r?   r�   r‚   r   ÚallÚzipr   r   Ú"_group_tensors_by_device_and_dtypeÚvaluesr   Úlistr   Úis_cpuÚ_foreach_add_rB   r   Ú_foreach_negÚ_foreach_powÚ_foreach_neg_Ú_foreach_mul_Ú_foreach_div_Ú_foreach_addÚ_foreach_lerp_Ú_foreach_addcmul_Ú_foreach_subÚ_foreach_mulÚ_foreach_sqrt_Ú_foreach_sqrtÚ_foreach_reciprocal_)'r   rU   rV   rW   rX   r\   r]   r    r#   r"   r$   r   r   r   rY   Úgrouped_tensorsÚgrouped_params_Úgrouped_grads_Úgrouped_exp_avgs_Úgrouped_exp_avg_sqs_Úgrouped_state_steps_Ú_Úgrouped_paramsÚgrouped_gradsÚgrouped_exp_avgsÚgrouped_exp_avg_sqsÚgrouped_state_stepsrŽ   r{   Ú
rho_t_listÚnumÚsub2Údenomr¡   Úunrect_step_sizeÚunrectifiedÚbufferr�   rs   s'        ```                             @@r1   Ú_multi_tensor_radamrÑ   i  s²  øøøøø€ õ$ ˆ6�{„{�aÒÐØˆàð DÝÐBÑCÔCÐCõ Œ>×&Ò&Ñ(Ô(ð ¨Zð Ý'HØð(
ñ (
ô (
Ð$õ ð 
ð 
ð 
ð 
õ ˜v {¸4Ð@Ñ@Ô@ð
ñ 
ô 
ñ 
ô 
ð 	õ
 !Ø{Ð\xÐ{Ð{Ð{ñô ð õ 
�B‰Œ€BåÔBØ	�˜ +¨{Ð;ñô €Oð ×"Ò"Ñ$Ô$ð_Jñ _Jñ 		ñ 	ØØØØØØÝ�d¥6œl¨OÑ<Ô<ˆÝ�T¥&œ\¨>Ñ:Ô:ˆÝ¥¥V¤Ð.?Ñ@Ô@ÐÝ"¥4­¤<Ð1EÑFÔFÐÝ"¥4­¤<Ð1EÑFÔFÐõ Œ~×*Ò*Ñ,Ô,ð 	8Ð1DÀQÔ1GÔ1Nð 	8ÝÔØ#¥U¤\°#¸eÐ%DÑ%DÔ%DÈCðñ ô ð ð õ ÔÐ 3°QÑ7Ô7Ð7àð 	ÝØ Ð/?ÐATñô ð ð ð 	>Ý!Ô.¨}Ñ=Ô=ˆMð �q˜5‘y‘/ AÑ%ˆð
 ð 	Ý$Ô1°%Ð9LÑMÔMÐÝÔÐ 0Ñ1Ô1Ð1ÝÔÐ 0°!Ñ4Ô4Ð4Ý$Ô1°%Ð9LÑMÔMÐÝÔÐ 0Ð2EÑFÔFÐFÝÔÐ 0°!Ñ4Ô4Ð4ÝÔÐ 0Ð2BÑCÔCÐCÝÔÐ 0Ñ1Ô1Ð1ÝÔÐ 0°'Ñ:Ô:Ð:Ø)ˆJˆJðð ð ð ð ð 0ðñ ô ˆJð ˜1ÒÐØ%ð ÝÔ# N°A¸¸\Ñ8IÑ4IÑJÔJÐJÐJð ð ÝÔ'Ø% ~¸\ðñ ô ð ð õ %*Ô$6Ø% ~¸\ð%ñ %ô %�Mõ
 	ÔÐ-¨}¸aÀ%¹iÑHÔHÐHåÔÐ/°Ñ7Ô7Ð7ÝÔØ °¸qÀ5¹yñ	
ô 	
ð 	
ð
 àñ B	ÝÔ$ Z°Ñ3Ô3ˆCÝÔ% j°!Ñ4Ô4ˆDÝÔ  TÑ*Ô*Ð*ØÝÔ  WÑ-Ô-Ð-Ø ‘{ w°¡{Ñ3ˆGÝÔ& z°7Ñ;Ô;ˆEÝÔ  UÑ+Ô+Ð+ØÝÔ  Ñ%Ô%Ð%ðð å # C¨¸DÐ AÑ AÔ Aðñ ô ˆDð ØØQÐQÈDÐQÑQÔQÐÝÔÐ 0°"Ñ5Ô5Ð5å$Ô1°%Ð9LÑMÔMÐÝÔÐ 0Ñ1Ô1Ð1ÝÔÐ 0°!Ñ4Ô4Ð4åÔÐ 0Ð2BÑCÔCÐCÝÔÐ 0Ñ1Ô1Ð1å$Ô1°%Ð9LÑMÔMÐÝÔÐ 0Ñ1Ô1Ð1ÝÔÐ 0°!Ñ4Ô4Ð4ÝÔ Ð!1Ñ2Ô2Ð2ÝÔÐ 0°"Ñ5Ô5Ð5ÝÔÐ 0°$Ñ7Ô7Ð7ØÝÔÐ 0Ñ1Ô1Ð1ÝÔÐ 0Ð2BÑCÔCÐCØ Ð ðð ð ð ð (ðñ ô ˆDð DÐC¸dÐCÑCÔCˆKð ð  ð  ð  Ø:Mð ñ  ô  Ðð ð  ð  ð  å # KÐ1AÈ$Ð OÑ OÔ Oð ñ  ô  Ðð ð  ð  ð  ð  å&)Ø'¨Ð/?Èð'ñ 'ô 'ð ñ  ô  Ðõ Ô$Ð%8Ñ9Ô9ˆÝÔ˜F CÑ(Ô(Ð(ÝÔ˜FÐ$4Ñ5Ô5Ð5ÝÔ" 6Ñ*Ô*Ð*ÝÔ˜FÐ$4Ñ5Ô5Ð5õ 	Ô Ð0@À&ÑIÔIÐIÑIð_Jð _Jr2   )Úsingle_tensor_fnFr   c                ót  — t          d„ |D ¦   «         ¦  «        st          d¦  «        ‚|€t          | |d¬¦  «        \  }}|r-t          j                             ¦   «         rt          d¦  «        ‚|r&t          j                             ¦   «         st          }nt          } || ||||||||||
||||	¬¦  «         dS )zpFunctional API that performs RAdam algorithm computation.

    See :class:`~torch.optim.RAdam` for details.
    c              3   óJ   K  — | ]}t          |t          j        ¦  «        V — Œd S rc   )r)   r?   r   )r•   Úts     r1   r–   zradam.<locals>.<genexpr>P  s.   è è € Ð@Ð@¨q�z˜!�Uœ\Ñ*Ô*Ð@Ð@Ð@Ð@Ð@Ð@r2   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   r   r?   r~   r   rÑ   r‘   )r   rU   rV   rW   rX   r$   r   r   r   rY   r   r\   r]   r    r#   r"   rÄ   Úfuncs                     r1   r   r   6  s  € õ4 Ð@Ð@°KÐ@Ñ@Ô@Ñ@Ô@ð 
ÝØ^ñ
ô 
ð 	
ð €Ý1Ø�N¨eð
ñ 
ô 
‰
ˆˆ7ð ð U•5”9×)Ò)Ñ+Ô+ð UÝÐSÑTÔTÐTàð $•u”y×-Ò-Ñ/Ô/ð $Ý"ˆˆå#ˆà€DØØØØØØØØØ!ØØØ5Ø%ØØðñ ô ð ð ð r2   )FNFFFF)Ú__doc__Útypingr   r?   r   Ú	optimizerr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   Ú__all__r   r®   rA   rg   r‘   rÑ   r   rH   r2   r1   ú<module>rÜ      su  ðà .Ð .à Ð Ð Ð Ð Ð à €€€Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð& �GÐ
€ðNð Nð Nð Nð NˆIñ Nô Nð Nðd2ðfà	ðð ð 
ðð ð 
ðð ð 
ðð ð 
ðð ð ñgKð „ð`fDØ�ŒLðfDà�Œ<ðfDð �6ŒlðfDð �f”ð	fDð
 �f”ðfDð ðfDð ðfDð 	ðfDð ðfDð 
ðfDð !ðfDð ðfDð ðfDð ðfDð  ð!fDð" 
ð#fDð fDð fDð fDðRJJØ�ŒLðJJà�Œ<ðJJð �6ŒlðJJð �f”ð	JJð
 �f”ðJJð ðJJð ðJJð 	ðJJð ðJJð 
ðJJð !ðJJð ðJJð ðJJð ðJJð  ð!JJð" 
ð#JJð JJð JJð JJðZ  ÐÐ1EÐFÑFÔFð $)ØØ ØØØð;ð ;Ø�ŒLð;à�Œ<ð;ð �6Œlð;ð �f”ð	;ð
 �f”ð;ð !ð;ð �D‰[ð;ð ð;ð ð;ð ð;ð ð;ð ð;ð  ð!;ð" 	ð#;ð$ ð%;ð& 
ð';ð( 
ð);ð ;ð ;ñ GÔFð;ð ;ð ;r2   