
    bIg                    f    d dl mZ 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y)
    )annotationsN)Base)expect)AI_ONNX_PREVIEW_TRAINING_DOMAINc                R    ||z  |z   }|dkD  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               a/var/www/html/answerous/venv/lib/python3.12/site-packages/onnx/backend/test/case/node/momentum.pyapply_momentumr      sH    $q(1,MEDqMAI55EE	ME%<    c                ^    ||z  |z   }|dkD  r|nd}	||z  |	|z  z   }
|| |||
z  z   z  z
  }||
fS r   r
   r   s               r   apply_nesterovr      sS    $q(1,MEDqMAI55E]UU]233E%<r   c                  B    e Zd Zedd       Zedd       Zedd       Zy)Momentumc            
        d} d}d}t         j                  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                  j                  t        d      g       y )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'   s    ! {{$$,g&-2 % 	
 HHS

+HHQbhh'HHc3Zrzz2HHeT]"**5HHc3Zrzz2 &aAq!5EudSu 	q!Q?EN (()H!L	
r   c            
        d} d}d}t         j                  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                  j                  t        d      g       y )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_momentumO   s      {{$$,g&-2 % 	
 HHS

+HHQbhh'HHc3Zrzz2HHeT]"**5HHc3Zrzz2 &aAq!5EudSu 	q!Q?EN)(()H!L	
r   c                    d} d}d}t         j                  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                  j                  t        d      g       y )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_multiplew   s    !{{$$A<-2 % 	
 HHS

+HHQbhh'XXse2::.XXtfBJJ/XXse2::.XXsCj

3XXtTl"**5XXsCj

3 (1b"b:JESWX'1b"b:JESWX 	q"b"b"b1VVV4)(()H!L	
r   N)returnNone)__name__
__module____qualname__staticmethodrH   rM   rd   r
   r   r   r   r   &   s>    %
 %
N %
 %
N *
 *
r   r   )
__future__r   numpyrA   r>   onnx.backend.test.case.baser   onnx.backend.test.case.noder   	onnx.defsr   r   r   r   r
   r   r   <module>rp      s1    #   , . 5		|
t |
r   