
    Ng                     b    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	d Z
 G d de          ZdS )	    N)Base)expect)AI_ONNX_PREVIEW_TRAINING_DOMAINc                 T    ||z  |z   }|dk    r|nd}	||z  |	|z  z   }
|| |
z  z
  }||
fS Nr       rtxgvnorm_coefficientalphabetag_regularizedbeta_adjustedv_newx_news               `/var/www/html/ai-engine/env/lib/python3.11/site-packages/onnx/backend/test/case/node/momentum.pyapply_momentumr      sL    $q(1,MEEDDqMAI55EE	ME%<    c                 `    ||z  |z   }|dk    r|nd}	||z  |	|z  z   }
|| |||
z  z   z  z
  }||
fS r   r	   r
   s               r   apply_nesterovr      sW    $q(1,MEEDDqMAI55E]UU]233E%<r   c                   V    e Zd Zedd            Zedd            Zedd            ZdS )MomentumreturnNc            
      n   d} d}d}t           j                            dg dddg| ||dt          	          }t	          j        dt          j        
          }t	          j        d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          ||||||g|	|
gdt           j        
                    t          d          g           d S )NMbP?ffffff?皙?r   RTXGVX_newV_newstandardinputsoutputsr   r   r   modedomaindtyper   333333?ffffff@Gz      333333?@test_momentumr   r-   r.   nameopset_importsonnxhelper	make_noder   nparrayfloat32int64r   r   make_opsetidr   r   r   noder   r   r   r   r   r   r   s              r   export_momentumzMomentum.export_momentum&   sK    ! {$$,,,g&-2 % 	
 	
 HS
+++HQbh'''Hc3Zrz222HeT]"*555Hc3Zrz222 &aAq!5EudSSu 	q!Q?EN (()H!LL	
 	
 	
 	
 	
 	
r   c            
      n   d} d}d}t           j                            dg dddg| ||dt          	          }t	          j        d
t          j                  }t	          j        d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          ||||||g|	|
gdt           j        
                    t          d          g           d S )Ng{Gz?r!         ?r   r#   r)   r*   nesterovr,   r"   r1   r   r3   r4   r5   r6   r7   r8   test_nesterov_momentumr   r:   )r>   r?   r@   r   rA   rB   rC   rD   r   r   rE   rF   s              r   export_nesterov_momentumz!Momentum.export_nesterov_momentumN   sK      {$$,,,g&-2 % 	
 	
 HS
+++HQbh'''Hc3Zrz222HeT]"*555Hc3Zrz222 &aAq!5EudSSu 	q!Q?EN)(()H!LL	
 	
 	
 	
 	
 	
r   c                  p   d} d}d}t           j                            dg dg d| ||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!   g333333?r   )r$   r%   X1X2G1G2H1H2)X1_newX2_newV1_newV2_newr+   r,   r"   r1   r   rJ   g      g       @g      g      @test_momentum_multipler   r:   r=   )r   r   r   rG   r   r   x1g1v1x2g2v2x1_newv1_newx2_newv2_news                   r   export_momentum_multiplez!Momentum.export_momentum_multiplev   s    !{$$AAA<<<-2 % 	
 	
 HS
+++HQbh'''Xse2:...XtfBJ///Xse2:...XsCj
333XtTl"*555XsCj
333 (1b"b:JESWXX'1b"b:JESWXX 	q"b"b"b1VVV4)(()H!LL	
 	
 	
 	
 	
 	
r   )r   N)__name__
__module____qualname__staticmethodrH   rM   rd   r	   r   r   r   r   %   st        %
 %
 %
 \%
N %
 %
 %
 \%
N *
 *
 *
 \*
 *
 *
r   r   )numpyrA   r>   onnx.backend.test.case.baser   onnx.backend.test.case.noder   	onnx.defsr   r   r   r   r	   r   r   <module>rm      s   
      , , , , , , . . . . . . 5 5 5 5 5 5	 	 		 	 	|
 |
 |
 |
 |
t |
 |
 |
 |
 |
r   