
    `ir                         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dS )    )OptionalN)Tensor)2_scripted_functional_optimizer_deprecation_warning__all__c                   v    e Zd Z	 	 	 	 	 	 	 dde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	dS )_FunctionalAdadelta      ??ư>        Fparamslrrhoepsweight_decayforeachmaximize_allow_empty_param_listc	                 d   t          d           ||||d| _        || _        || _        t	          |          dk    r|st          d          d|i| _        t          j        	                    t          t          j        t          t          t          j        f         f         i           | _        d S )N   )
stacklevel)r   r   r   r   r   z%optimizer got an empty parameter listr   )r   defaultsr   r   len
ValueErrorparam_grouptorchjitannotatedictr   strstate)	selfr   r   r   r   r   r   r   r   s	            /home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/torch/distributed/optim/functional_adadelta.py__init__z_FunctionalAdadelta.__init__   s     	;aHHHH(	
 
  v;;!$;DEEE %f-Y''U\4U\@Q;R-R(SUWXX


    	gradientsc                 f   | j         d         }g }g }g }g }g }| j        d         }| j        d         }	| j        d         }
| j        d         }t          |          t          |          k    r6t          ddt          |           dz   d	t          |           z             d
}t	          ||          D ]%\  }}||t          j        |          z  }|                    |           |                    |           || j        vrti | j        |<   | j        |         }t          j	        d          |d<   t          j
        |t
          j                  |d<   t          j
        |t
          j                  |d<   | j        |         }|                    |d                    |                    |d                    |                    |d                    't          j                    5  t          j        |||||||	|
|| j        | j        |           d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   r   zEthe gradients passed in does not equal to the size of the parameters!zParams length: z. zGradients length: Fr   step)memory_format
square_avg	acc_delta)r   r   r   r   r   r   has_complex)r   r   r   r   zipr   
is_complexappendr!   tensor
zeros_likepreserve_formatno_gradFadadeltar   r   )r"   r&   r   params_with_gradgradssquare_avgs
acc_deltasstate_stepsr   r   r   r   r,   paramgradientr!   s                   r#   r(   z_FunctionalAdadelta.step8   s   !(+
]4 mE"mE"}^4v;;#i..((W3CKK33347s9~~778  
 "6955 	2 	2OE8#u/666 ''...X&&&
**(*DJu% Ju-E$)L$5$5E&M*/*:U-B+ + +E,' */)9U-B* * *E+& 
5)""5#6777!!%"4555""5=111]__ 	 	J )'   	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   .+H&&H*-H*N)r	   r
   r   r   FFF)
__name__
__module____qualname__listr   floatboolr$   r   r(    r%   r#   r   r      s        
 !(-Y YVY Y 	Y
 Y Y Y Y "&Y Y Y Y<7d8F#34 7 7 7 7 7 7r%   r   )typingr   r   torch.optim._functionaloptim_functionalr4   r   ,torch.distributed.optim._deprecation_warningr   r   r@   r    __annotations__r   scriptr   rC   r%   r#   <module>rK      s            # # # # # # # # #           
 c    V V V V V V V V V Vr%   