
    Ngp                     \    d dl Zd dlZd dlmZ d dlmZ d dlmZ d Z	 G d de          Z
dS )    N)Base)expect)AI_ONNX_PREVIEW_TRAINING_DOMAINc                     | d||z  z   z  }||z  |z   }	||	|	z  z   }
t          j        |
          |z   }|||	z  |z  z
  }||
fS )N   )npsqrt)rtxghnorm_coefficientepsilondecay_factorr_g_regularizedh_newh_sqrtx_news                _/var/www/html/ai-engine/env/lib/python3.11/site-packages/onnx/backend/test/case/node/adagrad.pyapply_adagradr      sd    	
a!l""	#B$q(1,M--EWU^^g%F]"V++E5>    c                   >    e Zd Zedd            Zedd            ZdS )AdagradreturnNc            
      f   d} d}d}t           j                            dg dddg| ||t                    }t	          j        dt          j        	          }t	          j        d
t          j        	          }t	          j        dgt          j        	          }t	          j        dgt          j        	          }t	          j        dgt          j        	          }t          |||||| ||          \  }	}
t          ||||||g|	|
gdt           j        
                    t          d          g           d S )NMbP?h㈵>皙?r   )RTXGHX_newH_newinputsoutputsr   r   r   domaindtyper         ?             @test_adagradr   r)   r*   nameopset_importsonnxhelper	make_noder   r   arrayfloat32int64r   r   make_opsetid)r   r   r   noder
   r   r   r   r   r   r   s              r   export_adagradzAdagrad.export_adagrad   sG    ! {$$,,,g&-%2 % 
 
 HS
+++HQbh'''HcU"*---HdV2:...HcU"*--- %q!Q+Wl
 
u
 	q!Q?EN(()H!LL	
 	
 	
 	
 	
 	
r   c                  n   d} d}d}t           j                            dg dg d| ||t                    }t	          j        dt          j                  }t	          j        d	t          j                  }t	          j        d
gt          j                  }t	          j        dgt          j                  }t	          j        dgt          j                  }t	          j        d
dgt          j                  }	t	          j        ddgt          j                  }
t	          j        dd
gt          j                  }t          |||||| ||          \  }}t          |||	|
|| ||          \  }}t          |||||	||
||g||||gdt           j        
                    t          d          g           d S )Nr   r   r    r   )r!   r"   X1X2G1G2H1H2)X1_newX2_newH1_newH2_newr(   r,   r   r.   r/   r0   g      g      @test_adagrad_multipler   r2   r5   )r   r   r   r=   r
   r   x1g1h1x2g2h2x1_newh1_newx2_newh2_news                   r   export_adagrad_multiplezAdagrad.export_adagrad_multipleE   s    !{$$AAA<<<-%2 % 
 
 HS
+++HQbh'''Xse2:...XtfBJ///Xse2:...XsCj
333XtTl"*555XsCj
333 'q"b".
 
 'q"b".
 

 	q"b"b"b1VVV4((()H!LL	
 	
 	
 	
 	
 	
r   )r   N)__name__
__module____qualname__staticmethodr>   rU    r   r   r   r      sS        &
 &
 &
 \&
P -
 -
 -
 \-
 -
 -
r   r   )numpyr   r6   onnx.backend.test.case.baser   onnx.backend.test.case.noder   	onnx.defsr   r   r   rZ   r   r   <module>r_      s   
      , , , , , , . . . . . . 5 5 5 5 5 5  X
 X
 X
 X
 X
d X
 X
 X
 X
 X
r   