
    '}hA?                       d dl mZ d dlZd dlZd dlmZm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mZ g dZ ej.                  ej0                  d	      Zej4                  d4d
       Z ed       ej8                  ddd      ej4                  d5d4d                     Z ed       ej8                  dd      ej4                  d4d                     Zej4                  	 	 	 	 	 	 	 	 	 	 d6d       Z ed       ej8                  ddd      ej4                  d4d                     Z  ed       ej8                  ddd      ej4                  d4d                     Z! ed      ej4                  d4d              Z" ed      ej4                  	 	 d4d              Z# ed      ej4                  	 	 d4d              Z$ ed      ej4                  	 	 d4d               Z% ed!       ej8                  ddddd"      ej4                  	 	 d4d#                     Z& ed$      ej4                  d4d%              Z' ed&       ej8                  ddd      ej4                  	 	 	 	 	 	 	 	 d7d'                     Z( ed(       ej8                  ddd      ej4                  	 	 	 	 	 	 	 	 d7d)                     Z) ed*      ej4                  d4d+              Z* ed,      ej4                  d4d-              Z+ ed.      ej4                  d4d/              Z, ed0       ej8                  dd"dd      ej4                  d4d1                     Z- ed2       ej8                  ddddd      ej4                  d5d4d3                     Z.y)8    )annotationsN)OptionalTuple)_onnx)_type_utilserrorssymbolic_helpersymbolic_opset9utils)	_beartype	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       Z/var/www/html/test/engine/venv/lib/python3.12/site-packages/torch/onnx/symbolic_opset12.py_einsum_helperr4   /   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_listr4   )r/   r0   tensor_listpathr1   s        r3   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_typer4   r/   inputothers      r3   r   r   J   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*   torchr2   bool)r/   rD   ptraintrmasks          r3   &_dropout_returns_masked_input_and_maskrW   Z   s     ''y9 d{	Za1A	Ze5::!FGAdd9eQ1d5GAtd7Nr=   zaten::dropoutfbc                (    t        | |||      \  }}|S r9   rW   )r/   rD   rR   rS   masked_s         r3   r   r   i   s     7q%EJIFAMr=   zaten::native_dropoutc                    t        | |||      S r9   r[   )r/   rD   rR   rS   s       r3   r   r   q   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           r3   r   r   x   s      00C@I,Ny)I #33L#FL{{}!$$'!'  
" N $$'!'  
 Nr=   zaten::nll_loss2dc                "    t        | |||||      S r9   r   r/   rl   rm   rn   ro   rp   s         r3   r   r          
 AtVVYEEr=   zaten::nll_loss_ndc                "    t        | |||||      S r9   rt   ru   s         r3   r   r      rv   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`   ra   rX   g        z2Unsupported: ONNX does not support label_smoothingSoftmaxCrossEntropyLossrf   )r	   ri   r   SymbolicValueErrorrj   rk   r*   )	r/   rl   rm   rn   ro   rp   label_smoothingrq   celosss	            r3   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 )NrG      rH   r`   r   
ReduceMean)
keepdims_irM   	ReduceSumzMbinary_cross_entropy_with_logits with reduction other than none, mean, or sum)r*   rP   r2   opset9sigmoidlogsubr	   _is_nonenegaddmulri   _onnx_unsupported)r/   rD   rm   rn   
pos_weightro   rR   sig_x	log_sig_xsub_1_xsub_1_ylog_1_xoutputs                r3   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 )NrX   r#   r$   Celu)alpha_f)r	   ri   r   r?   r@   rA   DOUBLEr*   r+   r,   FLOAT)r/   rl   alphaouts       r3   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/   rD   dimkeepdims       r3   r   r          00E3RRr=   zaten::argminc                4    t        j                  | |||d      S )NArgMinr   r   s       r3   r   r   $  r   r=   z	aten::powc                (    | j                  d||      S )NPowr*   )r/   rl   exponents      r3   r   r   0  s     44tX&&r=   zaten::gec                (    | j                  d||      S )NGreaterOrEqualr   rC   s      r3   r   r   6  s     44 %//r=   zaten::lec                (    | j                  d||      S )NLessOrEqualr   rC   s      r3   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
                         r| j                  d||||      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/        j0                  |      }t/        j0                  |      }|j                  d||      }|j                  d||      }|j                  dt        j                  dg            }t        j2                  ||dg      }t        j2                  ||dg      }|j                  d||||      }t        j2                  ||j                  d||      |g      }|j                  |        |j                  dg|ddi}|j                  d	|t"        j$                  j&                        } t/        j4                  ||        t/        j4                  ||       |j7                         j9                         }!g d}||dz      |d   c|d<   ||dz   <   | j                  d|!|      }"t        j:                  | |"dg      }#|#S t        j<                  dd      S )Nr`   r   )dimension_isize_istep_irG   r   rH   r~   Ranger#   r$   MinLoop)n_blocksGatherrM   Slice	Transpose)perm_iConcataxis_i)r   r~   rM         Unfoldzinput size not accessible)r	   ri   	_is_valuer   r   is_caffe2_aten_fallbackat_get_tensor_dim_sizer*   rP   r2   _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_blockrj   r   _squeeze_helper_unimplemented)$r/   rD   	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_contextr]   
loop_blockblock_input_itercondstartsendsaxesstack	unsqueezeconcatcond_outloop_output	transposesqueezes$                                       r3   r   r   B  s    !11$<J 11$<J$$Z09R9R: }}Qy*jII..0ttHe4PTtUU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   rG   rJ   rH   z	ij,jk->ikzprim::ListConstruct)r	   r   r   r   rz   r   lenr   permuter*   _slice_helperrP   r2   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                        r3   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.GraphContextr9   )
r/   r
  rD   torch._C.ValuerR   floatrS   rQ   returnz/Tuple[torch._C.Value, Optional[torch._C.Value]])r/   r
  rD   r  r   r  r   rQ   )/
__future__r   	functoolsr   typingr   r   rP   torch._Cr   r+   
torch.onnxr   r   r	   r
   r   r   torch.onnx._internalr   r   r   __all__partialonnx_symbolic_onnx_symbolicbeartyper4   
parse_argsr   r   rW   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r=   r3   <module>r     s   "  
 "  %  D C( #""<#=#=RH = =$ Cd+
0  ,  0
 C%

8  & 
8 &49>GK4   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/
IQ  0  IQX !"CdD#6
Q?  7 #Q?r=   