
    sgK=                       d dl mZ d dlZd dlZd dlZd dlmZ d dlm	Z	m
Z
mZmZmZ d dlmZmZ g dZ ej&                  ej(                  d      Zd3d	Z ed
       ej.                  ddd      d4d3d              Z ed       ej.                  dd      d3d              Z	 	 	 	 	 	 	 	 	 	 d5dZ ed       ej.                  ddd      d3d              Z ed       ej.                  ddd      d3d              Z ed      d3d       Z ed      	 	 d3d       Z ed      	 	 d3d       Z ed      	 	 d3d       Z  ed        ej.                  ddddd!      	 	 d3d"              Z! ed#      d3d$       Z" ed%       ej.                  ddd      	 	 	 	 	 	 	 	 d6d&              Z# ed'       ej.                  ddd      	 	 	 	 	 	 	 	 d6d(              Z$ ed)      d3d*       Z% ed+      d3d,       Z& ed-      d3d.       Z' ed/       ej.                  dd!dd      d3d0              Z( ed1       ej.                  ddddd      d4d3d2              Z)y)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                t   |st        d      t        j                  |d         ry|D cg c].  }| j                  d|t        j
                  j                        0 }}| j                  d | j                  dg|d|it        j
                  j                        S  | j                  dg|d|iS c c}w )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       N/var/www/html/venv/lib/python3.12/site-packages/torch/onnx/symbolic_opset12.py_einsum_helperr1   0   s    566
+ "
 DDg&A&A&G&GDH
 
 ttADD9G99,,11  
 	
 qttH<w<8<<
s   3B5zaten::einsumsvisc                F    t        j                  |      }t        | ||      S N)r   _unpack_listr1   )r,   r-   tensor_listpathr.   s        r0   r   r   B   s#     **;7G!Xw//    zaten::outerc                N   t         j                  j                  |t         j                  j                        t         j                  j                  |      k7  r?| j	                  d|t         j                  j                  |      j                               }t        | d||g      S )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                ,   t        j                  |d       |s|d fS | j                  dt        j                  |            }| j                  dt        j                  |t        j
                              }| j                  d|||d      \  }}||fS )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dd9eQ1d5GAtd7Nr:   zaten::dropoutfbc                (    t        | |||      \  }}|S r6   rT   )r,   rA   rO   rP   masked_s         r0   r   r   f   s     7q%EJIFAMr:   zaten::native_dropoutc                    t        | |||      S r6   rX   )r,   rA   rO   rP   s       r0   r   r   m   s     2!UAuEEr:   zaten::nll_lossc                
   t        j                  |d      }g d}||   }t        j                  |d      }|j                         j                         r| j	                  d||||      }|S | j	                  d|||||      }|S )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y)I #33L#FL{{}!$$'!'  
" N $$'!'  
 Nr:   zaten::nll_loss2dc                "    t        | |||||      S r6   r   r,   ri   rj   rk   rl   rm   s         r0   r   r           AtVVYEEr:   zaten::nll_loss_ndc                "    t        | |||||      S r6   rq   rr   s         r0   r   r      rs   r:   zaten::cross_entropy_lossc                p   t        j                  |d      }g d}||   }t        j                  |d      }||dkD  rt        j                  d|      t        j                  |d      }|j	                         j                         r| j                  d||||      }|S | j                  d|||||      }|S )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y)I%66LO"'<''@$
 	
 #33L#FL{{}!%!'  
" M %!'  
 Mr:   z&aten::binary_cross_entropy_with_logitsr]   c                   | j                  dt        j                  dg            }t        j                  | |      }t        j
                  | |      }t        j                  | ||      }	t        j                  | ||      }
t        j
                  | |	      }|t        j                  |      rVt        j                  | t        j                  | t        j                  | ||      t        j                  | |
|                  }njt        j                  | t        j                  | t        j                  | t        j                  | ||      |      t        j                  | |
|                  }|,t        j                  |      st        j                  | ||      }t        j                  |d      }|dk(  r|S |dk(  r| j                  d|d      S |dk(  r| j                  d	|d      S t        j                  d
|      S )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NN1e$E

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

1fjjFI>
K

1gw/
 /":":6"BAvv.00C@IA~	attL&Qt77	attKAt6600[
 	
r:   z
aten::celuc                   t        j                  |d      }t        j                  j	                  |t        j                  j
                        t        j                  j                  k(  rl| j                  d|t        j                  j                        }| j                  d||      }| j                  d|t        j                  j                        S | j                  d||      S )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dd64d/ttFCg&A&A&H&HtII44e4,,r:   zaten::argmaxc                4    t        j                  | |||d      S )NArgMaxr   _argmin_argmax_helperr,   rA   dimkeepdims       r0   r   r          00E3RRr:   zaten::argminc                4    t        j                  | |||d      S )NArgMinr   r   s       r0   r   r     r   r:   z	aten::powc                (    | j                  d||      S )NPowr'   )r,   ri   exponents      r0   r   r   #  s    44tX&&r:   zaten::gec                (    | j                  d||      S )NGreaterOrEqualr   r@   s      r0   r   r   (  s    44 %//r:   zaten::lec                (    | j                  d||      S )NLessOrEqualr   r@   s      r0   r   r   -  s    44ue,,r:   zaten::unfoldc           
        t        j                  |d      }t        j                  |d      }t        j                  |      s.t        j                  |      st        j                  | ||||      S t        j
                  ||      }|| j                  dt        j                  d            }| j                  dt        j                  |            }	| j                  dt        j                  |dz               }
| j                  d||	|      }| j                  d||
|      }t        j                  | || j                  dt        j                  d                  }t        j                  | || j                  dt        j                  d                  }t        j                  |      }|J t        t        d|            }|j                  |j                  |             g }| j                  dt        j                  d            }| j                  d|t        j                   j"                        }| j                  d	||      }t%        j&                  | d
||d      \  }\  }}|j(                  }t+        j,                  |      }t+        j,                  |      }|j                  d||      }|j                  d||      }|j                  dt        j                  dg            }t        j.                  ||dg      }t        j.                  ||dg      }|j                  d||||      }t        j.                  ||j                  d||      |g      }|j                  |        |j                  dg|ddi}|j                  d|t        j                   j"                        } t+        j0                  ||        t+        j0                  ||       |j3                         j5                         }!g d}||dz      |d   c|d<   ||dz   <   | j                  d|!|      }"t        j6                  | |"dg      }#|#S t        j8                  dd      S )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9R9R: }}Qy*jII225)DGDDU\\!_D=	$$z5<<+@$Aj%,,w{*CDdd7Iw=TT'46
"//{ADDU\\!_DE
 "..z144
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           	        |t        j                  dd       t        j                  |      }|t        j                  d|      t        j                  |      }|t        j                  d|      t        t        |            D cg c]  }||   dk  r||   |z   n||    }}t        t        |            D cg c]  }||   dk  r||   |z   n||    }}t        |      D cg c]	  }||vs| }	}t        |      D cg c]	  }||vs| }
}t        j                  | ||	|z         }t        j                  | |||
z         }| j                  d|      }t        j                  | |dgdgt        |	      g      }|| j                  dt        j                  d	gt        j                  
            g}t        j                  | ||      }| j                  d|      }t        j                  | |dgd	gt        j                   g      }| j                  dt        j                  d	gt        j                  
            |g}t        j                  | ||      }| j                  d|      }t        j                  | |dgt        |      gt        j                   g      }t        j                  | |dgdgt        |      g      }|| j                  dt        j                  d	gt        j                  
            g}t        j                  | ||      }| j                  d|      }t        j                  | |dgd	gt        j                   g      }| j                  dt        j                  d	gt        j                  
            |g}t        j                  | ||      }t#        | d | j                  dg||g       }||g}t        j                  | ||      S c c}w c c}w c c}w c c}w )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{# '-Qi!m[	 &)CF  s6{# '-Qi!m[	 &)CF 
 $K0FQf_1FKF#K0FQf_1FKF..G[6-ABK..GVk-ABK$$w,K"00	;aS!C4D3EL 		Zrd%**!EFK **1k;GH$$w)K**	;aS"S[[MF 	
Zrd%**!EFK **1k;GH$$w,K"00	;aS#f+ckk]L **	;aS!CK=F 		Zrd%**!EFK **1k;GH$$w)K**	;aS"S[[MF 	
Zrd%**!EFK **1k;GHA{DADD)>$V(HAU$VWF.K&&q&+>>{
 GFs$   	O"=O'(	O,2O,	O1O1)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/GQ 0  GQT !"CdD#6Q? 7 #Q?r:   