Ë
    ùÿæiËa  ã            $       ó   — 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y)%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   FN)ÚforeachÚmaximizeÚ
capturableÚdifferentiableÚparamsÚlrÚbetasÚepsÚweight_decayÚdecoupled_weight_decayr   r   r   r   Úreturnc          
      ó�  •— t        |t        «      r|j                  «       dk7  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        ‰| �  ||«       y )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               €úf/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/torch/optim/radam.pyr*   zRAdam.__init__    sû   ø€ ô �bœ&Ô! b§h¡h£j°A¢oÜÐ:Ó;Ð;Ø�bŠyÜÐ6°r°dÐ;Ó<Ð<Ø�cŠzÜÐ6°s°eÐ<Ó=Ð=Ø�e˜A‘hÔ$ Ô$ÜÐBÀ5ÈÁ8À*ÐMÓNÐNØ�e˜A‘hÔ$ Ô$ÜÐBÀ5ÈÁ8À*ÐMÓNÐNØ�lÒ"ÜÐ;¸L¸>ÐJÓKÐKð ØØØ(Ø ØØ$Ø&<Ø,ñ

ˆô 	‰Ñ˜ Õ*ó    c                 óX  •— t         ‰| �  |«       | j                  D �]
  }|j                  dd «       |j                  dd«       |j                  dd«       |j                  dd«       |j                  dd«       |d   D ]¥  }| j                  j                  |g «      }t        |«      dk7  sŒ.t        j                  |d	   «      rŒGt        |d	   «      }|d   r*t        j                  |t        «       |j                  ¬
«      nt        j                  |t        «       ¬«      |d	<   Œ§ �Œ y )Nr   r   Fr   r!   r   r   r   Ústep©ÚdtypeÚdevice©r3   )r)   Ú__setstate__Úparam_groupsÚ
setdefaultÚstateÚgetÚlenÚtorchÚ	is_tensorÚfloatÚtensorr   r4   )r+   r9   ÚgroupÚpÚp_stateÚstep_valr-   s         €r.   r6   zRAdam.__setstate__H   s  ø€ Ü‰Ñ˜UÔ#Ø×&Õ&ˆEØ×Ñ˜Y¨Ô-Ø×Ñ˜Z¨Ô/Ø×ÑÐ-¨uÔ5Ø×ÑÐ5°uÔ=Ø×Ñ˜\¨5Ô1Ø˜8”_�ØŸ*™*Ÿ.™.¨¨BÓ/�Ü�w“< 1Ó$¬U¯_©_¸WÀV¹_Õ-MÜ$ W¨V¡_Ó5�Hð
 ! Ò.ô Ÿ™Ø$Ô,=Ó,?ÈÏÉõô #Ÿ\™\¨(Ô:KÓ:MÔNð ˜F’Oò	 %ñ 'r/   c                 óú  — d}|d   D �]o  }|j                   €Œ|t        j                  |«      z  }|j                  |«       |j                   j                  rt        d«      ‚|j                  |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<   |j                  |	d   «       |j                  |	d   «       |j                  |	d
   «       �Œr |S )NFr   z'RAdam does not support sparse gradientsr   r   © r2   r$   r5   r1   )Úmemory_formatÚexp_avgÚ
exp_avg_sq)Úgradr<   Ú
is_complexÚappendÚ	is_sparseÚRuntimeErrorr9   r;   Úzerosr   r4   r?   Ú
zeros_likeÚpreserve_format)
r+   r@   Úparams_with_gradÚgradsÚexp_avgsÚexp_avg_sqsÚstate_stepsÚhas_complexrA   r9   s
             r.   Ú_init_groupzRAdam._init_group\   sH  € ð ˆØ�x•ˆAØ�v‰vÑ!Øœu×/Ñ/°Ó2Ñ2�Ø ×'Ñ'¨Ô*Ø—6‘6×#Ò#Ü&Ð'PÓQÐQØ—‘˜QŸV™VÔ$àŸ
™
 1™�ä�u“: ’?ð ! Ò.ô Ÿ™ BÔ.?Ó.AÈ!Ï(É(ÕSä"Ÿ\™\¨#Ô5FÓ5HÔIð ˜&‘Mô (-×'7Ñ'7Ø¬×)>Ñ)>ô(�E˜)Ñ$ô +0×*:Ñ*:Ø¬×)>Ñ)>ô+�E˜,Ñ'ð —‘  iÑ 0Ô1Ø×"Ñ" 5¨Ñ#6Ô7Ø×"Ñ" 5¨¡=Ö1ð7 !ð: Ðr/   c                 óœ  — | j                  «        d}|�$t        j                  «       5   |«       }ddd«       | j                  D ]x  }g }g }g }g }g }t	        t
        t        t        f   |d   «      \  }	}
| j                  ||||||«      }t        ||||||	|
|d   |d   |d   |d   |d   |d   |d	   |d
   |¬«       Œz |S # 1 sw Y   Œ’xY w)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!   rV   )	Ú'_accelerator_graph_capture_health_checkr<   Úenable_gradr7   r   Útupler>   rW   r   )r+   ÚclosureÚlossr@   rQ   rR   rS   rT   rU   rY   rZ   rV   s               r.   r1   z
RAdam.step   s  € ð 	×4Ñ4Ô6àˆØÐÜ×"Ñ"Õ$Ù“y�÷ %ð ×&Ô&ˆEØ-/ÐØ"$ˆEØ%'ˆHØ(*ˆKØ(*ˆKÜ¤¤e¬U lÑ 3°U¸7±^ÓD‰LˆE�5à×*Ñ*ØÐ'¨°¸+À{óˆKô Ø ØØØØØØØ˜‘;Ø" >Ñ2Ø˜%‘LØ˜zÑ*Ø˜iÑ(Ø  Ñ.Ø$Ð%5Ñ6Ø',Ð-EÑ'FØ'ö!ð 'ð> ˆ÷E %Ð$ús   ©CÃC)gü©ñÒMbP?)gÍÌÌÌÌÌì?g+‡ÙÎ÷ï?g:Œ0âŽyE>r   F©N)Ú__name__Ú
__module__Ú__qualname__r   r>   r   r]   Úboolr*   r6   rW   r   r1   Ú__classcell__)r-   s   @r.   r   r      sÉ   ø„ ð "Ø%1ØØØ',ð&+ð  $ØØ Ø$ò&+àð&+ð �F‰Nð&+ð �U˜E�\Ñ"ð	&+ð
 ð&+ð ð&+ð !%ð&+ð ˜‘ð&+ð ð&+ð ð&+ð ð&+ð 
õ&+ôPò(!ðF "ò-ó "ô-r/   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   rR   rS   rT   rU   rY   rZ   r   r    r   r!   r   r   r   rV   r"   c       
         ó   ‡	‡‡‡‡‡— t         j                  j                  «       st        |«      }t	        | «      D �]P  \  }}|s||   n||    }||   }||   Š||   }t         j
                  j                  «       s`|r^t        «       }|j                  j                  |j                  j                  k(  r|j                  j                  |v st        d|› d�«      ‚t        j                  |«      rTt        j                  |«      }t        j                  |«      }t        j                  |«      }t        j                  ‰«      Š|dz  }|r|n
t        |«      }|dk7  r-|
r|j                  d||z  z
  «       n|j                  ||¬«      }|j!                  |d|z
  «       ‰j                  |«      j#                  ||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	„}|rBt        j$                  ‰d
kD   |«        |«       z  d«      }|j'                  ||z  |z  d¬«       �Œ‰d
kD  r(|j'                  ||z   |«       z   |«       z  d¬«       �Œ;|j'                  ||z  d¬«       �ŒS y )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é   rl   ç      à?rE   )Úrho_infÚrho_ts   €€r.   Ú_compute_rectz+_single_tensor_radam.<locals>._compute_rectE  sK   ø€ ð ˜‘Ø˜1‘9ñàñð ˜a‘K G¨a¡KÑ0°5Ñ8ñ:ð ñð r/   c                  ó~   •— ‰j                  «       } ‰r| j                  ‰«      } n| j                  ‰«      } ‰dz  | z  S )Nro   )ÚsqrtÚaddÚadd_)Úexp_avg_sq_sqrtÚbias_correction2r   r   rH   s    €€€€r.   Ú_compute_adaptive_lrz2_single_tensor_radam.<locals>._compute_adaptive_lrN  sD   ø€ Ø(Ÿo™oÓ/ˆOÙØ"1×"5Ñ"5°cÓ":‘à"1×"6Ñ"6°sÓ";�ð % cÑ)¨_Ñ<Ð<r/   ç      @r%   g      ð¿)r<   ÚjitÚis_scriptingr   Ú	enumerateÚcompilerÚis_compilingr   r4   ÚtypeÚAssertionErrorrJ   Úview_as_realr   Úmul_ru   Úlerp_Úaddcmul_Úwhererv   )r   rR   rS   rT   rU   rY   rZ   r   r    r   r!   r   r   r   rV   ÚiÚparamrI   rG   Ústep_tÚcapturable_supported_devicesr1   Úbias_correction1Úbias_corrected_exp_avgrr   ry   Úupdaterx   rH   rp   rq   s            ` `               @@@@r.   Ú_single_tensor_radamrŽ      sœ  ý€ ô$ �9‰9×!Ñ!Ô#Ü˜‹^ˆä˜f×%‰ˆˆ5Ù'ˆu�QŠx¨e°A©h¨YˆØ˜1‘+ˆØ  ‘^ˆ
Ø˜Q‘ˆô �~‰~×*Ñ*Ô,±Ü+LÓ+NÐ(à—‘×!Ñ! V§]¡]×%7Ñ%7Ò7Ø—L‘L×%Ñ%Ð)EÑEä$Ø_Ð`|Ð_}Ð}~Ðóð ô ×Ñ˜EÔ"Ü×&Ñ& uÓ-ˆEÜ×%Ñ% dÓ+ˆDÜ×(Ñ(¨Ó1ˆGÜ×+Ñ+¨JÓ7ˆJð 	�!‰ˆÙ#‰v¬°FÓ);ˆà˜1ÒÙ%Ø—
‘
˜1˜r LÑ0Ñ0Õ1à—x‘x ¨\�xÓ:�ð 	�‰�d˜A ™IÔ&Ø�‰˜Ó×'Ñ'¨¨d¸!¸e¹)Ð'ÔDà˜u d™{™?ÐØ˜u d™{™?Ðð ")Ð+;Ñ!;Ðð �q˜5‘y‘/ AÑ%ˆà˜!˜d™( e¨T¡kÑ2Ð5EÑEÑEˆõ	÷	=ñ Ü—[‘[Ø˜‘™]›_Ñ/CÓ/EÑEÀsóˆFð �J‰JÐ-°Ñ2°VÑ;À4ˆJÖHà�sŠ{Ø—
‘
Ø*Øñá*Ó,ñ-ñ $“oñ&ð ð ö ð —
‘
Ð1°BÑ6¸d�
ÖCñg &r/   c       
         ó|  ‡*— t        | «      dk(  ry |rt        d«      ‚t        j                  j	                  «       s=|r;t        d¬«      Š*t        ˆ*fd„t        | |d¬«      D «       «      st        d‰*› d	�«      ‚t        |«      }t        j                  | ||||g«      }|j                  «       D �]_  \  \  }}}}}}t        t        t           |«      }t        t        t           |«      }t        t        t           |«      }t        t        t           |«      }t        t        t           |«      }t        j                  j	                  «       s=|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?|D �cg c]4  }|dt1        |«      z  |t1        |«      z  z  d|t1        |«      z  z
  z  z
  ‘Œ6 }}|dk7  rR|
rt        j,                  |d||z  z
  «       n3|rt        j                   |||¬«       nt        j2                  |||¬«      }t        j4                  ||d|z
  «       t        j,                  ||«       t        j6                  |||d|z
  «       ~|�r9t        j8                  |d«      } t        j8                  |d«      }!t        j,                  | |!«       ~!t        j,                  | |«       |dz
  |dz
  z  }t        j:                  ||«      }"t        j.                  | |"«       ~"t        j<                  | «       t        | |d¬«      D �#�$cg c]  \  }#}$t        j>                  |$dkD  |#d«      ‘Œ! }%}#}$~ ~|%D �%cg c]  }%t        j>                  |%dkD  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.                  ||«       ~nÓ|D �$cg c])  }$|$dkD  r |$dz
  |$dz
  z  |z  |dz
  |dz
  z  |$z  z  dz  nd‘Œ+ }%}$|%D �%cg c]  }%|%dkD  rdnd
‘Œ }'}%|D �cg c]  }d|t1        |«      z  z
  ‘Œ }}t        |'|d¬«      D �%�(cg c]  \  }%}(||%z  |(z  dz  ‘Œ }&}%}(t        |%|d¬«      D ��%�(cg c]&  \  }}%}(d|t1        |«      z  z
  dz  ||%z  |(z  z  dz  ‘Œ( }}%}}(t        j@                  |«      })t        j                   |)|	«       t        j.                  |)|«       t        jB                  |)«       t        j                   |)|&«       t        j6                  |||)«       �Œb y c c}w c c}$}#w c c}%w c c}$w c c}%w c c}w c c}(}%w c c}(}%}w )Nr   z#_foreach ops don't support autogradF)Úsupports_xlac              3   ó²   •K  — | ]N  \  }}|j                   j                  |j                   j                  k(  xr |j                   j                  ‰v –— ŒP y ­wr`   )r4   r€   )Ú.0rA   r1   rŠ   s      €r.   Ú	<genexpr>z&_multi_tensor_radam.<locals>.<genexpr>ˆ  sR   øè ø€ ð 
ñ A‘��4ð �H‰H�M‰M˜TŸ[™[×-Ñ-Ñ-ò >Ø—‘—‘Ð!=Ð=ó>á@ùs   ƒAAT)Ústrictrg   rh   r%   Úcpu)r4   ri   r   rl   rn   rz   r$   é   ro   éÿÿÿÿ)"r;   r�   r<   r~   r   r   ÚallÚzipr   r   Ú"_group_tensors_by_device_and_dtypeÚvaluesr   Úlistr   Úis_cpuÚ_foreach_add_r?   r   Ú_foreach_negÚ_foreach_powÚ_foreach_neg_Ú_foreach_mul_Ú_foreach_div_r   Ú_foreach_addÚ_foreach_lerp_Ú_foreach_addcmul_Ú_foreach_subÚ_foreach_mulÚ_foreach_sqrt_r†   Ú_foreach_sqrtÚ_foreach_reciprocal_)+r   rR   rS   rT   rU   rY   rZ   r   r    r   r!   r   r   r   rV   Ú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_stepsrp   r‹   rx   Ú
rho_t_listr1   ÚnumÚsub2ÚdenomÚnrq   ÚrectÚunrect_step_sizeÚunrectifiedÚbcÚbufferrŠ   s+                                             @r.   Ú_multi_tensor_radamrÂ   k  s`  ø€ ô$ ˆ6ƒ{�aÒØáÜÐBÓCÐCô �>‰>×&Ñ&Ô(©ZÜ'HØô(
Ð$ô ó 
ô ˜v {¸4Õ@ó
ô 
ô
 !Ø[Ð\xÐ[yÐyzÐ{óð ô 
�B‹€Bä×BÑBØ	�˜ +¨{Ð;ó€Oð ×"Ñ"×$ñ		ñ 	ØØØØØØÜœd¤6™l¨OÓ<ˆÜœT¤&™\¨>Ó:ˆÜ¤¤V¡Ð.?Ó@ÐÜ"¤4¬¡<Ð1EÓFÐÜ"¤4¬¡<Ð1EÓFÐô �~‰~×*Ñ*Ô,Ð1DÀQÑ1G×1NÒ1NÜ×ÑØ#¤U§\¡\°#¸eÔ%DÈCöô ×ÑÐ 3°QÔ7áÜØ Ð/?ÐATôñ Ü!×.Ñ.¨}Ó=ˆMð �q˜5‘y‘/ AÑ%ˆñ
 Ü$×1Ñ1°%Ð9LÓMÐÜ×ÑÐ 0Ô1Ü×ÑÐ 0°!Ô4Ü$×1Ñ1°%Ð9LÓMÐÜ×ÑÐ 0Ð2EÔFÜ×ÑÐ 0°!Ô4Ü×ÑÐ 0Ð2BÔCÜ×ÑÐ 0Ô1Ü×ÑÐ 0°'Ô:Ø)‰Jñ 0óñ 0�Dð ØÜ˜TÓ"ñ#àœJ tÓ,Ñ,ñ.ð �u¤
¨4Ó 0Ñ0Ñ0ñ2ó2ð
 0ð ð ð ˜1ÒÙ%Ü×#Ñ# N°A¸¸\Ñ8IÑ4IÕJñ Ü×'Ñ'Ø% ~¸\öô %*×$6Ñ$6Ø% ~¸\ô%�Mô
 	×ÑÐ-¨}¸aÀ%¹iÔHä×ÑÐ/°Ô7Ü×ÑØ °¸qÀ5¹yô	
ð
 âÜ×$Ñ$ Z°Ó3ˆCÜ×%Ñ% j°!Ó4ˆDÜ×Ñ  TÔ*ØÜ×Ñ  WÔ-Ø ‘{ w°¡{Ñ3ˆGÜ×&Ñ& z°7Ó;ˆEÜ×Ñ  UÔ+ØÜ× Ñ  Ô%ô
 !$ C¨¸DÕ Aôá A‘H�A�uô —‘˜E C™K¨¨CÕ0Ø Að ñ ð ØÙLPÓQÉDÀD¤§¡¨D°1©H°c¸3Õ ?ÈDÐÐQÜ×ÑÐ 0°"Ô5ä$×1Ñ1°%Ð9LÓMÐÜ×ÑÐ 0Ô1Ü×ÑÐ 0°!Ô4ä×ÑÐ 0Ð2BÔCÜ×ÑÐ 0Ô1ä$×1Ñ1°%Ð9LÓMÐÜ×ÑÐ 0Ô1Ü×ÑÐ 0°!Ô4Ü× Ñ Ð!1Ô2Ü×ÑÐ 0°"Ô5Ü×ÑÐ 0°$Ô7ØÜ×ÑÐ 0Ô1Ü×ÑÐ 0Ð2BÔCÙ ñ (óñ (�Eð ˜1’9ð ˜Q‘YØ˜q‘yñ"àñð   !™¨°!©Ñ4°uÑ<ñ>ð
 òð ñð (ð ð ñ ?CÓC¹d°d  q¢™1¨cÑ1¸dˆKÐCñ ;Nó Ù:M°$��EœZ¨Ó-Ñ-Ó-Ð:Mð ð  ô
 !$ KÐ1AÈ$Õ Oô á O‘H�D˜"ð �d‘˜R‘ 2Ó%Ø Oð ñ  ô '*Ø'¨Ð/?Èõ'õ ñ'‘N�D˜$ ð �eœz¨$Ó/Ñ/Ñ/°CÑ7¸BÀ¹IÈ¹NÑKÈbÓPð'ð ò  ô ×$Ñ$Ð%8Ó9ˆÜ×Ñ˜F CÔ(Ü×Ñ˜FÐ$4Ô5Ü×"Ñ" 6Ô*Ü×Ñ˜FÐ$4Ô5ô 	×Ñ Ð0@À&ÖIñs %ùòXùó^ùò  Rùò*ùò Dùò ùó ùô s0   Ê9\Ð6$\Ñ#!\Ö<.\"×0\'Ø\,Ø1\1Ù+\7
)Úsingle_tensor_fnr   c                óB  — t        d„ |D «       «      st        d«      ‚|€t        | |d¬«      \  }}|r)t        j                  j                  «       rt        d«      ‚|r%t        j                  j                  «       st        }nt        } || ||||||||||
||||	¬«       y)zpFunctional API that performs RAdam algorithm computation.

    See :class:`~torch.optim.RAdam` for details.
    c              3   óP   K  — | ]  }t        |t        j                  «      –— Œ  y ­wr`   )r&   r<   r   )r’   Úts     r.   r“   zradam.<locals>.<genexpr>R  s   è ø€ Ð@±K¨qŒz˜!œUŸ\™\×*±Kùs   ‚$&zPAPI has changed, `state_steps` argument must contain a list of singleton tensorsNF)Ú	use_fusedz6torch.jit.script not supported with foreach optimizers)
rY   rZ   r   r    r   r   r!   r   r   rV   )r˜   rM   r   r<   r{   r|   rÂ   rŽ   )r   rR   rS   rT   rU   r!   r   r   r   rV   r   rY   rZ   r   r    r   r²   Úfuncs                     r.   r   r   8  s¯   € ô4 Ñ@±KÓ@Ô@ÜØ^ó
ð 	
ð €Ü1Ø�N¨eô
‰
ˆˆ7ñ ”5—9‘9×)Ñ)Ô+ÜÐSÓTÐTá”u—y‘y×-Ñ-Ô/Ü"‰ä#ˆáØØØØØØØØØ!ØØØ5Ø%ØØör/   )FNFFFF)Ú__doc__Útypingr   r<   r   Ú	optimizerr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   Ú__all__r   rœ   r>   rd   rŽ   rÂ   r   rE   r/   r.   Ú<module>rÍ      s7  ðá .å ã Ý ÷÷ ÷ ÷ ñ ð& �GÐ
€ôNˆIô Nðd2ðf	à	ˆð 
	ð 
ˆð 	Ø	ˆð 	Ø	Ðð 	Ø	Ðð 	ðñgKð „ð`hDØ�‰LðhDà�‰<ðhDð �6‰lðhDð �f‘ð	hDð
 �f‘ðhDð ðhDð ðhDð 	ðhDð ðhDð 
ðhDð !ðhDð ðhDð ðhDð ðhDð  ð!hDð" 
ó#hDðV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ñZ  Ð1EÔFð $)ØØ ØØØñ;Ø�‰Lð;à�‰<ð;ð �6‰lð;ð �f‘ð	;ð
 �f‘ð;ð !ð;ð �D‰[ð;ð ð;ð ð;ð ð;ð ð;ð ð;ð  ð!;ð" 	ð#;ð$ ð%;ð& 
ð';ð( 
ò);ó Gñ;r/   