
    JTh+=                       S SK Jr  S SKrS SKrS SKrS SKJr  S SKJ	r	J
r
JrJrJr  S SKJrJr  / SQr\R&                  " \R(                  SS9rS3S	 jr\" S
5      \R.                  " SSS5      S4S3S jj5       5       r\" S5      \R.                  " SS5      S3S j5       5       r          S5S jr\" S5      \R.                  " SSS5      S3S j5       5       r\" S5      \R.                  " SSS5      S3S j5       5       r\" S5      S3S j5       r\" S5        S3S j5       r\" S5        S3S j5       r\" S5        S3S j5       r \" S 5      \R.                  " SSSSS!5        S3S" j5       5       r!\" S#5      S3S$ j5       r"\" S%5      \R.                  " SSS5              S6S& j5       5       r#\" S'5      \R.                  " SSS5              S6S( j5       5       r$\" S)5      S3S* j5       r%\" S+5      S3S, j5       r&\" S-5      S3S. j5       r'\" S/5      \R.                  " SS!SS5      S3S0 j5       5       r(\" S15      \R.                  " SSSSS5      S4S3S2 jj5       5       r)g)7    )annotationsN)_onnx)_type_utilserrorssymbolic_helpersymbolic_opset9utils)	jit_utilsregistration)argmaxargmin binary_cross_entropy_with_logitscelucross_entropy_lossdropouteinsumgelenative_dropoutnll_loss
nll_loss2dnll_loss_ndouterpow	tensordotunfold   )opsetc           	        U(       d  [        S5      e[        R                  " US   5      (       av  U Vs/ s H,  nU R                  SU[        R
                  R                  S9PM.     nnU R                  SU R                  " S/UQ7SU06[        R
                  R                  S9$ U R                  " S/UQ7SU06$ s  snf )NzEinsum inputs are empty.r   Castto_iEinsum
equation_s)RuntimeErrorr   _is_boolop_C_onnxTensorProtoDataTypeINT64BOOL)gequationtensorstensors       S/var/www/auris/envauris/lib/python3.13/site-packages/torch/onnx/symbolic_opset12.py_einsum_helperr1   0   s    566
++ "
! DDg&A&A&G&GDH! 	 
 ttDD9G99,,11  
 	
 ttH<w<8<<
s   3B=zaten::einsumsvisc                F    [         R                  " U5      n[        XU5      $ N)r   _unpack_listr1   )r,   r-   tensor_listpathr.   s        r0   r   r   B   s!     **;7G!w//    zaten::outerc                H   [         R                  R                  U[         R                  R                  5      [         R                  R                  U5      :w  a<  U R	                  SU[         R                  R                  U5      R                  5       S9n[        U SX/5      $ )Nr    r!   zi,j->ij)r   JitScalarType
from_value	UNDEFINEDr'   	onnx_typer1   r,   inputothers      r0   r   r   I   s       ++{((22		"	"	-	-e	45 **55e<FFH  

 !Y77r:   c                   [         R                  " US5        U(       d  US 4$ U R                  S[        R                  " U5      S9nU R                  S[        R                  " U[        R
                  S9S9nU R                  SXUSS9u  pVXV4$ )Nr   Constantvalue_tdtypeDropout   )outputs)r   check_training_moder'   torchr/   bool)r,   rA   ptraintrmasks          r0   &_dropout_returns_masked_input_and_maskrT   X   s}     ''y9 d{	Za1A	Ze5::!FGAdd9e1d5GA7Nr:   zaten::dropoutfbc                "    [        XX#5      u  pEU$ r6   rT   )r,   rA   rO   rP   masked_s         r0   r   r   f   s     7qJIFMr:   zaten::native_dropoutc                    [        XX#5      $ r6   rX   )r,   rA   rO   rP   s       r0   r   r   m   s     2!AEEr:   zaten::nll_lossc           	     
   [         R                  " US5      n/ SQnXd   n[         R                  " US5      nUR                  5       R                  5       (       a  U R	                  SUUUUS9nU$ U R	                  SUUUUUS9nU$ )NinonemeansumNegativeLogLikelihoodLossreduction_signore_index_i)r   _maybe_get_constnode
mustBeNoner'   )r,   selftargetweight	reductionignore_indexreduction_valsnlllosss           r0   r   r   s   s    
  00C@I,N)I #33L#FL{{}!!$$'!'  
" N $$'!'  
 Nr:   zaten::nll_loss2dc                    [        XX#XE5      $ r6   r   r,   ri   rj   rk   rl   rm   s         r0   r   r           AVYEEr:   zaten::nll_loss_ndc                    [        XX#XE5      $ r6   rq   rr   s         r0   r   r      rs   r:   zaten::cross_entropy_lossc           	     x   [         R                  " US5      n/ SQnXt   n[         R                  " US5      nUb  US:  a  [        R                  " SU5      e[         R                  " US5      nUR	                  5       R                  5       (       a  U R                  SUUUUS9nU$ U R                  SUUUUUS9nU$ )Nr]   r^   rU   g        z2Unsupported: ONNX does not support label_smoothingSoftmaxCrossEntropyLossrc   )r   rf   r   SymbolicValueErrorrg   rh   r'   )	r,   ri   rj   rk   rl   rm   label_smoothingrn   celosss	            r0   r   r      s      00C@I,N)I%66LO"'<''@$
 	
 #33L#FL{{}!!%!'  
" M %!'  
 Mr:   z&aten::binary_cross_entropy_with_logitsr]   c                $   U R                  S[        R                  " S/5      S9n[        R                  " X5      n[        R
                  " X5      n[        R                  " XU5      n	[        R                  " XU5      n
[        R
                  " X	5      nUb  [        R                  " U5      (       aX  [        R                  " U [        R                  " U [        R                  " XU5      [        R                  " X
U5      5      5      nOm[        R                  " U [        R                  " U [        R                  " U [        R                  " XU5      U5      [        R                  " X
U5      5      5      nUb2  [        R                  " U5      (       d  [        R                  " XU5      n[        R                  " US5      nUS:X  a  U$ US:X  a  U R                  SUSS9$ US:X  a  U R                  S	USS9$ [        R                  " S
U5      $ )NrD      rE   r]   r   
ReduceMean)
keepdims_irJ   	ReduceSumzMbinary_cross_entropy_with_logits with reduction other than none, mean, or sum)r'   rM   r/   opset9sigmoidlogsubr   _is_nonenegaddmulrf   _onnx_unsupported)r,   rA   rj   rk   
pos_weightrl   rO   sig_x	log_sig_xsub_1_xsub_1_ylog_1_xoutputs                r0   r   r      s   
 	
Zqc!23ANN1$E

1$Ijju%Gjjv&Gjj$G_55jAAJJ6::a3VZZG5T
 JJ

1fjjI>
K

1w/
 /":":6"B"BAv.00C@IA~	attL&Qt77	attKAt6600[
 	
r:   z
aten::celuc                   [         R                  " US5      n[        R                  R	                  U[        R                  R
                  5      [        R                  R                  :X  ab  U R                  SU[        R                  R                  S9nU R                  SXS9nU R                  SU[        R                  R                  S9$ U R                  SXS9$ )NrU   r    r!   Celu)alpha_f)r   rf   r   r<   r=   r>   DOUBLEr'   r(   r)   FLOAT)r,   ri   alphaouts       r0   r   r      s    ,,UC8E 	!!,,T;3L3L3V3VW$$++	, ttFDw'B'B'H'HtIdd64d/ttFCg&A&A&H&HtII444,,r:   zaten::argmaxc                2    [         R                  " XX#S5      $ )NArgMaxr   _argmin_argmax_helperr,   rA   dimkeepdims       r0   r   r          003RRr:   zaten::argminc                2    [         R                  " XX#S5      $ )NArgMinr   r   s       r0   r   r     r   r:   z	aten::powc                &    U R                  SX5      $ )NPowr'   )r,   ri   exponents      r0   r   r   #  s    44t&&r:   zaten::gec                &    U R                  SX5      $ )NGreaterOrEqualr   r@   s      r0   r   r   (  s    44 %//r:   zaten::lec                &    U R                  SX5      $ )NLessOrEqualr   r@   s      r0   r   r   -  s    44u,,r:   zaten::unfoldc           
        [         R                  " US5      n[         R                  " US5      n[         R                  " U5      (       d3  [         R                  " U5      (       d  [        R                  " XX%U5      $ [         R
                  " X5      nUGb  U R                  S[        R                  " S5      S9nU R                  S[        R                  " U5      S9n	U R                  S[        R                  " US-   5      S9n
U R                  SXU5      nU R                  SX:U5      n[         R                  " XU R                  S[        R                  " S5      S95      n[         R                  " XU R                  S[        R                  " S5      S95      n[         R                  " U5      nUc   e[        [        SU5      5      nUR                  UR                  U5      5        / nU R                  S[        R                  " S5      S9nU R                  SU[        R                   R"                  S9nU R                  S	X5      n[$        R&                  " U S
UUSS9u  nu  nnUR(                  n[*        R,                  " U5      n[*        R,                  " U5      nUR                  SUU5      nUR                  SUU5      nUR                  S[        R                  " S/5      S9n[         R.                  " UUS/5      n[         R.                  " UUS/5      nUR                  SUUUU5      n[         R.                  " UUR                  SUUS9U/5      nUR                  U5        UR                  " S/UQ7SS06nUR                  SU[        R                   R"                  5      n [*        R0                  " UU 5        [*        R0                  " UU5        UR3                  5       R5                  5       n!/ SQnUUS-      US   sUS'   UUS-   '   U R                  SU!US9n"[         R6                  " U U"S/5      n#U#$ [         R8                  " SS5      $ )Nr]   rD   r   rE   r{   Ranger    r!   MinLoop)n_blocksGatherrJ   Slice	Transpose)perm_iConcataxis_i)r   r{   rJ         Unfoldzinput size not accessible)r   rf   	_is_valuer   r   _get_tensor_dim_sizer'   rM   r/   _size_helper_get_tensor_ranklistrangeappendpopr(   r)   r+   r
   add_op_with_blocksblockr	   _add_input_to_block_unsqueeze_helper_add_output_to_blockrg   r   _squeeze_helper_unimplemented)$r,   rA   	dimensionsizestep
const_size
const_stepsizedim	low_startlow_endhi_endlow_indices
hi_indiceslow_sizehi_sizendimpermunsqueeze_listloop_conditionloop_lenlooploop_contextrZ   
loop_blockblock_input_itercondstartsendsaxesstack	unsqueezeconcatcond_outloop_output	transposesqueezes$                                       r0   r   r   2  s    !11$<J 11$<J$$Z009R9R: : }}QyjII225DGDDU\\!_D=	$$z5<<+@$Aj%,,w{*CDdd7I=TT'46
"//ADDU\\!_DE
 "..144
ELLO4D
 //6E!TN#DHHY'(j%,,q/BN)D)D)I)I  
 44x1#,#?#?vx!$
 o|q "''
 44Z@((4;8HIx5EFz5<<3DE 22<!M00taSIdC#55,//+uT/JYK
	 	i(ENE1E??NG$?$?$D$D
 	"":x8"":v6iik((*'+IM':DG$Qi!m$DDk$D?	!11!YD))(4OPPr:   zaten::tensordotc           	        Ub  [         R                  " SS5        [         R                  " U5      nUc  [        R                  " SU5      e[         R                  " U5      nUc  [        R                  " SU5      e[        [        U5      5       Vs/ s H  nX8   S:  a  X8   U-   OX8   PM     nn[        [        U5      5       Vs/ s H  nXH   S:  a  XH   U-   OXH   PM     nn[        U5       Vs/ s H  oU;  d  M
  UPM     n	n[        U5       Vs/ s H  oU;  d  M
  UPM     n
n[        R                  " XX-   5      n[        R                  " XXJ-   5      nU R                  SU5      n[         R                  " XS/S/[        U	5      /S9nUU R                  S[        R                  " S	/[        R                  S
9S9/n[        R                  " XU5      nU R                  SU5      n[         R                  " XS/S	/[        R                   /S9nU R                  S[        R                  " S	/[        R                  S
9S9U/n[        R                  " XU5      nU R                  SU5      n[         R                  " XS/[        U5      /[        R                   /S9n[         R                  " XS/S/[        U5      /S9nUU R                  S[        R                  " S	/[        R                  S
9S9/n[        R                  " XU5      nU R                  SU5      n[         R                  " XS/S	/[        R                   /S9nU R                  S[        R                  " S	/[        R                  S
9S9U/n[        R                  " XU5      n[#        U SU R                  " S/UU/Q76 5      nUU/n[        R                  " U UU5      $ s  snf s  snf s  snf s  snf )N	Tensordotz-Out parameter is not supported for tensordot.zJUnsupported: ONNX export of tensordot for tensor(input_a) of unknown rank.zJUnsupported: ONNX export of tensordot for tensor(input_b) of unknown rank.r   Shape)r   r   r   rD   rG   rE   z	ij,jk->ikzprim::ListConstruct)r   r   r   r   rw   r   lenr   permuter'   _slice_helperrM   r/   long_reshape_from_tensorsysmaxsizer   )r,   input_ainput_bdims_adims_br   dim_count_adim_count_br]   left_dims_aleft_dims_bnew_input_anew_input_binput_shapeleft_sizes_ashape_sizesoutput_aslicesleft_sizes_boutput_br   s                        r0   r   r   }  s    &&H	
 "227;K''X
 	

 "227;K''X
 	
 s6{##A '-i!m[	 &)C#   s6{##A '-i!m[	 &)C#  
 $K0F0f_10KF#K0F0f_10KF..[-ABK..V-ABK$$w,K"00	aS!C4D3EL 		Zrd%**!EFK **1;GH$$w)K**	aS"S[[MF 	
Zrd%**!EFK **1;GH$$w,K"00	aS#f+ckk]L **	aS!CK=F 		Zrd%**!EFK **1;GH$$w)K**	aS"S[[MF 	
Zrd%**!EFK **1;GHA{ADD)>$V(HAU$VWF.K&&q&+>>{
 GFs$   OO2	O?O	O!!O!)r,   jit_utils.GraphContextr6   )
r,   r  rA   torch._C.ValuerO   floatrP   rN   returnz,tuple[torch._C.Value, torch._C.Value | None])r,   r  rA   r  r   r  r   rN   )*
__future__r   	functoolsr   rM   torch._Cr   r(   
torch.onnxr   r   r   r   r   r	   torch.onnx._internalr
   r   __all__partialonnx_symbolic_onnx_symbolicr1   
parse_argsr   r   rT   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r:   r0   <module>r     s   #  
  %  9( ""<#=#=RH=$ Cd+0 ,  0
 C%
8 & 
8&49>GK1  Cc* + !
 &'Cc*F + (F  ! "@ "#FF $F #$FF %F *+++ ,+\ 89Cc34(
(
 5 :(
V - - Cc*SSS 
S 	S +  S Cc*SSS 
S 	S +  S ' ' 
0 0 
- - Cc3/FQ 0  FQR !"CdD#6Q? 7 #Q?r:   