
    Χg                     ^	   d Z ddlZddlmZmZmZmZ ddlZddlmZ ddl	m
Z
mZmZ ddlmZmZ dgZ ej        ej        d	          Z ed
           ed          dej        fd                        Z ed           ej        dddddd          dej        dej        dej        dee         dee         dee         fd                        Z ed ej        dd          g           ed ej        ddd           g          dOd"ed#ed$efd%                        Z ed&           ej        d!ddd           ej        ddddd'          dej        dej        d(ee         d)ej        d*ej        d+e d,eej        ej        ej        f         fd-                                    Z! ed.           ej        dd/          dej        fd0                        Z" ed1          dPdej        fd2            Z# ed3           ej        d!d!          dej        fd4                        Z$ ed5          dPdej        fd6            Z% ed7           ej        d!d!          dej        fd8                        Z& ed9           ej        d!           ej        ddd/          dej        fd:                                    Z' ed;           ej        d!           ej        ddd/          dej        fd<                                    Z( ed=           ej        d!           ej        ddd/          dej        fd>                                    Z) ed?          dej        fd@            Z* edA           ej        ddd/          dej        fdB                        Z+ edC           ej        ddddDd          dej        dEej        j        dFej        j        dGee         dHedIej        j        fdJ                        Z, edK           ej        dddd/d/d/dd/d/	  	        dej        fdL                        Z- edM           ej        dd'ddDd          dej        dEej        j        dFe dGeee                  dHedIej        j        fdN                        Z.dS )Qa  This file exports ONNX ops for opset 18.

Note [ONNX Operators that are added/updated in opset 18]

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
https://github.com/onnx/onnx/blob/main/docs/Changelog.md#version-18-of-the-default-onnx-operator-set
New operators:
    BitwiseAnd
    CenterCropPad
    Col2Im
    Mish
    OptionalGetElement
    OptionalHasElement
    Pad
    Resize
    ScatterElements
    ScatterND
    Split
    N)ListOptionalSequenceTuple)_C)_type_utilssymbolic_helpersymbolic_opset9)	jit_utilsregistrationcol2im   )opsetzaten::__and_zaten::bitwise_andgc                 F   ||g}d |D             }t          |          dk    r|}t          j        | }t          j        | ||          }t          j        | ||          }|t          j        j        k    r|                     d||          S |                     d||          S )Nc                 :    g | ]}t          j        |          |S  )r	   _get_tensor_rank).0args     W/var/www/html/ai-engine/env/lib/python3.11/site-packages/torch/onnx/symbolic_opset18.py
<listcomp>z__and_.<locals>.<listcomp>/   s(    NNN(H(M(MNNNN    r   And
BitwiseAnd)lenr	   _type_promote_from_values_maybe_cast_to_typer   JitScalarTypeBOOLop)r   selfotherargs	prom_argspromotion_jit_types         r   __and_r'   )   s     %=DNNNNNI
9~~	(BIN.q$8JKKD/5:LMME[6;;;ttE4'''44dE***r   zaten::col2imvisinputoutput_sizekernel_sizedilationpaddingstridec           	          g }|D ])}t          d          D ]}	|                    |           *t          j        |          d         }
|sddg|
z  }|sdg|
z  }|sdg|
z  }|                     d||||||          S )N   r      Col2Im)dilations_ipads_i	strides_i)rangeappendr	   _get_tensor_sizesr!   )r   r*   r+   r,   r-   r.   r/   adjusted_paddingpad_num_dimensional_axiss              r   r   r   :   s      ) )q 	) 	)A##C((((	) +<[II!L 9q6$88 .3-- ,++44    r   z
aten::mean
ReduceMeanmean)decoratez
aten::prod
ReduceProdprodF)allow_multi_dim_supportTonnx_opnamerC   c                 .    t          j        | ||          S N)r	   _reduce_with_dtype_helper)rD   rE   rC   s      r   _reduce_with_dtyperI   `   s!     4.  r   zaten::native_layer_normfnormalized_shapeweightbiasepsreturnc                 4    t          j        | |||||          S rG   )opset9native_layer_norm)r   r*   rK   rL   rM   rN   s         r   _native_layer_normrS   q   s      #Au.>cRRRr   z	aten::gluic                     t          j        ||          }||dz  dk    sJ |                     d||dd          \  }}|                     d||                     d|                    S )Nr1   r   Split)axis_inum_outputs_ioutputsMulSigmoid)r	   _get_tensor_dim_sizer!   )r   r*   dimdim_sizefirstseconds         r   _glura      st     3E3??H!|q    DD%1aDPPME644uadd9f55666r   z	aten::maxc                 0    t          j        | |||          S rG   )r	   _max_helperr   r"   dim_or_ykeepdims       r   maxrg      s    
 &q$'BBBr   zaten::maximumc                 &    t          | ||          S N)re   )rg   r   r*   r#   s      r   maximumrk           q%%((((r   z	aten::minc                 0    t          j        | |||          S rG   )r	   _min_helperrd   s       r   minro      s     &q$'BBBr   zaten::minimumc                 &    t          | ||          S ri   )ro   rj   s      r   minimumrq      rl   r   z
aten::amaxc                     |                      dt          j        |t          j                            }|                      d|||          S )NConstantdtypevalue_t	ReduceMax
keepdims_ir!   torchtensorlongr   r"   r]   rf   axess        r   amaxr      D     44
ELEJ$G$G$G4HHD44T4G4<<<r   z
aten::aminc                     |                      dt          j        |t          j                            }|                      d|||          S )Nrs   rt   rv   	ReduceMinry   r{   r   s        r   aminr      r   r   zaten::aminmaxc                    t          j        |          s~t          j        |dd          }|                     dt	          j        |gt          j                            }|                     d|||          |                     d|||          fS |                     d||          |                     d||          fS )	NrT   r]   rs   rt   rv   r   ry   rx   )r	   _is_none
_get_constr!   r|   r}   r~   r   s        r   aminmaxr      s     #C(( 	
(c599ttJcU%*(M(M(MtNNttKtt@@!$$t CG C
 C
 
 	
 ttK't::ADD' =A =
 =
 
 	
r   zaten::var_meanc                     t          |          dk    rt          j        | |d |d         d           S t          j        | |g|R  S )Nr2   r   )r   r	   _var_mean_helper)r   r*   r$   s      r   	_var_meanr      sI    
4yyA~~/5$QNNN/5@4@@@@r   zaten::logsumexpc                     ||                      d|d          S |                      dt          j        |t          j                            }|                      d|||          S )NReduceLogSumExpr   ry   rs   rt   rv   r{   )r   r*   r]   rf   r   s        r   
_logsumexpr      sc     {tt%ut;;;ttJS
(K(K(KtLLtt%udwtGGGr   zaten::linalg_matrix_normbr"   ordr]   rf   ru   c                 4    t          j        | |||||          S rG   )rQ   linalg_matrix_normr   r"   r   r]   rf   ru   s         r   _linalg_matrix_normr      s     $Qc3GGGr   zaten::embedding_bagc
                 <    t          j        | |||||||||	
  
        S rG   )r	   _embedding_bag_helper)
r   embedding_matrixindicesoffsetsscale_grad_by_freqmodesparseper_sample_weightsinclude_last_offsetpadding_idxs
             r   embedding_bagr      s7     0	  r   zaten::linalg_vector_normc                 4    t          j        | |||||          S rG   )r	   _linalg_vector_norm_helperr   s         r   linalg_vector_normr      s      5asCRWXXXr   )T)NN)/__doc__	functoolstypingr   r   r   r   r|   r   
torch.onnxr   r	   r
   rQ   torch.onnx._internalr   r   __all__partialonnx_symbolic_onnx_symbolicGraphContextr'   
parse_argsValueintr   _apply_paramsstrboolrI   quantized_argsfloatrS   ra   rg   rk   ro   rq   r   r   r   r   r   r   r   r   r   r   r   <module>r      s
   (     2 2 2 2 2 2 2 2 2 2 2 2        N N N N N N N N N N 8 8 8 8 8 8 8 8  #"<#=RHHH #$$+i$ + + + %$  + Cc4t<<!8! ! 	!
 sm! c]! SM! ! ! =<  !H 9O9,OOP   %%&%	
 	
 	
    3       )**eUE::CsC55SS8S smS H	S
 (S 
S 28RXrx'(S S S 65 ;: +*S C%%7I" 7 7 7 &% 7 C C9! C C C	 C   d++)y% ) ) ) ,+ ! ) C C9! C C C C   d++)y% ) ) ) ,+ ! ) %%Cs++=I" = = = ,+ &% =
 %%Cs++=I" = = = ,+ &% =
   %%Cc**

y% 

 

 

 +* &% ! 

  !!A' A A A "!A !""Cs++H)( H H H ,+ #"H *++CdC55HH
(.H 
H 
c	H
 H 8>H H H 65 ,+H %&&Cc3S#sCHH   IH '&4 *++CdC55YY
(.Y 
Y 
(3-	 	Y
 Y 8>Y Y Y 65 ,+Y Y Yr   