
    ha	                     L    S SK rS SKrS SKJr  S SKJr  SS jr " S S\5      rg)    N)Base)expectc                 D   U R                   S   U-  S:X  d   eU R                   S   U-  nU R                   S   X/[        U R                   SS  5      QnU R                  U5      n[        [	        S[        U5      5      5      n[        R                  " XxSS9n	[        R                  " XxSS9n
S[        U5      S-
  -  nUR                  " S/UQ76 nUR                  " S/UQ76 nX'U	-
  -  [        R                  " X-   5      -  U-   nUR                  U R                   5      $ )N   r      T)axiskeepdims)r   )
shapelistreshapetuplerangelennpmeanvarsqrt)x
num_groupsscalebiasepsilon
group_size	new_shape
x_reshapedaxesr   r   dim_onesress                h/var/www/fran/franai/venv/lib/python3.13/site-packages/onnx/backend/test/case/node/groupnormalization.py_group_normalizationr!      s   771:
"a'''z)JZHd17712;6GHI9%Jq#i.)*D77:48D
&&
6Cs9~)*HMM"(x(E<<&X&D
$
%(>
>
EC;;qww    c                   (    \ rS rSr\SS j5       rSrg)GroupNormalization   Nc                  \   [         R                  R                  SSSS5      R                  [         R                  5      n Sn[         R                  R                  U5      R                  [         R                  5      n[         R                  R                  U5      R                  [         R                  5      n[        XX#5      R                  [         R                  5      n[        R                  R                  S/ SQS/US9n[        UXU/U/SS	9  [         R                  R                  SSSS5      R                  [         R                  5      n Sn[         R                  R                  U5      R                  [         R                  5      n[         R                  R                  U5      R                  [         R                  5      nS
n[        XX#U5      R                  [         R                  5      n[        R                  R                  S/ SQS/UUS9n[        UXU/U/SS	9  g )N      r   r$   )r   r   r   y)inputsoutputsr    test_group_normalization_example)r*   r+   nameg{Gz?)r*   r+   r   r    test_group_normalization_epsilon)
r   randomrandnastypefloat32r!   onnxhelper	make_noder   )r   r   r   r   r)   noder   s          r    exportGroupNormalization.export   s   IIOOAq!Q'..rzz:
		
+222::>yyz*11"**= <CCBJJO{{$$ )E!	 % 
 	d#C3		
 IIOOAq!Q'..rzz:
		
+222::>yyz*11"**= WELLRZZX{{$$ )E! % 
 	d#C3		
r"    )returnN)__name__
__module____qualname____firstlineno__staticmethodr7   __static_attributes__r9   r"   r    r$   r$      s    )
 )
r"   r$   )gh㈵>)	numpyr   r3   onnx.backend.test.case.baser   onnx.backend.test.case.noder   r!   r$   r9   r"   r    <module>rD      s$   
   , . "+
 +
r"   