
    Χg                       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Zd dlm	c 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 d dlmZmZ g dZ ej        ej        d	
          Z ed          dd            Z ej        ddd          dd            Z ed          dd            Z ed           ej        dddd          ddd                        Z  ed           ej        dddddd          ddd                        Z!dd&Z"dd.Z#dd3Z$ ed4 ej%        d5d6d78          g9           ed: ej%        d;d<d78          g9           ed= ej%        d>d?d78          g9           ed@ ej%        dAd6dB8          g9           edC ej%        dDd<dB8          g9           edE ej%        dFd?dB8          g9          ddJ                                                                        Z&ddLZ' edM ej%        dNd6          g9           edO ej%        dPd<          g9           edQ ej%        dRd?          g9          dS                                     Z( edT ej%        dUd?dV          g9           edW ej%        dXdYdV          g9           edZ ej%        d[d\dV          g9           ed] ej%        d^d?d_          g9           ed` ej%        dadYd_          g9           edb ej%        dcd\d_          g9          dd                                                                         Z) ede          ddf            Z*	 dddoZ+ edp          ddq            Z, edr           ej        dds          ddt                        Z- edu          ddv            Z. edw           ej        ddddddddd	  	        ddx                        Z/ edy           ej        ddddd          	 	 ddd|                        Z0 ed}          dd~            Z1 ed          dd            Z2 ed          dd            Z3 ed          dd            Z4 ed           ej        dddd          dd                        Z5 ed          dd            Z6 ed          dd            Z7 ed          dd            Z8 ed          dd            Z9 ed          dd            Z: ed          dd            Z; ed          dd            Z< ed          dd            Z= ed          dd            Z> ed          dd            Z? ed           ej        dddddd          dd                        Z@ ed          dd            ZA ed          dd            ZB ed          dd            ZC ed          dd            ZD ed          dd            ZE ed          dd            ZF ed          dd            ZG ed          dd            ZH ed          dd            ZI ed           ej        dddd          dd                        ZJdS )    )annotationsN)Sequence)_C)
_constants_type_utilserrorssymbolic_helpersymbolic_opset9)GLOBALS)	jit_utilsregistration)"
dequantizedivembedding_bagfake_quantize_per_tensor_affineflipfmodisfiniteisinf
nan_to_numquantize_per_tensorquantized_add_reluquantized_addquantized_catquantized_conv1d_reluquantized_conv2d_reluquantized_conv3d_reluquantized_conv1dquantized_conv2dquantized_conv3dquantized_conv_transpose1dquantized_conv_transpose2dquantized_conv_transpose3dquantized_group_normquantized_hardswishquantized_instance_normquantized_layer_normquantized_leaky_reluquantized_linearquantized_linear_reluquantized_mulquantized_sigmoidslicesorttopk
   )opsetz	aten::divgjit_utils.GraphContextc                r    t          |          dk    rt          j        | ||          S t          | ||g|R  S Nr   )lenopset9true_divide_div_rounding_mode)r2   selfotherargss       W/var/www/html/ai-engine/env/lib/python3.11/site-packages/torch/onnx/symbolic_opset10.pyr   r   L   s@    
4yyA~~!!T5111!!T5848888    vsc                ^    |dk    rt          | ||          S t          j        | |||          S )Nfloor)_floor_divider7   r9   )r2   r:   r;   rounding_modes       r=   r9   r9   T   s6    Qe,,,(D%GGGr>   zaten::_floor_dividec                >   t          j        |          st          j        |          r,t          j        | ||          }|                     d|          S |                     d||          }|                     dt          j        dt
          j                            }|                     d|                     d||          |                     d||                    }|                     d	||d
          }|                     d||                     d|                     d||                              }|                     dt          j        dt
          j                            }	|                     d||	          }
|                     d||
|          S )NFloorDivConstantr   dtypevalue_tXorLessModfmod_iAndNotEqual   SubWhere)r	   _is_fpr7   r8   optorchtensorint64)r2   r:   r;   outr   zeronegativemod
fixup_maskonefixups              r=   rC   rC   \   sb   d## 5'=e'D'D 5 D%00ttGS!!! dd5$&&ttJQek(J(J(JtKK44qttFD$77feT9R9RSS dd5$ad00TT%144qttGS$7O7O+P+PQQ
dd:u|AU['I'I'IdJJUC%%ttGZ444r>   z
aten::sortinonec                4    t          j        | ||||          S )N)	decendingr]   )r	   _sort_helper)r2   r:   dimrg   r]   s        r=   r.   r.   q   s      '4	sSSSSr>   z
aten::topkc           	     8    t          j        | ||||||          S )N)largestsortedr]   )r	   _topk_helper)r2   r:   kri   rk   rl   r]   s          r=   r/   r/   w   s-     '	4CS   r>   r:   _C.Valuekernel_shapeSequence[int]stridespads	dilations	ceil_modeboolunbatched_rankintreturnc                   |                      d|                      d|                    }||k    rK|                      d||                      dt          j        dgt          j                                      }|                      d|d	|||||
          \  }	}
||k    rK|                      d|	|                      dt          j        dgt          j                                      }	|	S )NSizeShape	UnsqueezerH   r   rI   rK   MaxPool   outputsceil_mode_idilations_ikernel_shape_ipads_i	strides_iSqueezerY   rZ   r[   r\   )r2   r:   rp   rr   rs   rt   ru   rw   	self_rankpool_result_s              r=   _aten_max_pool_onnxr      s     VQTT'40011IN""ttDDU\1#U[%I%I%IDJJ
 
 TT#  	 	NK N""ddDDU\1#U[%I%I%IDJJ
 
 r>   expand_sizekernel_sizeSequence[int] | intstridepaddingdilationAtuple[Sequence[int], Sequence[int], Sequence[int], Sequence[int]]c                   t          |t                    r|g| z  }t          |t                    r|g| z  }n|}t          |t                    r
|g| z  dz  }nPt          |          dk    r	|| z  dz  }n4t          |          dk    r|dz  }nt          |          dk    r|dz  }n|}t          |t                    r|g| z  }n|s|}n|}||||fS ):Adjust attributes of avg_pool to match ONNX specification.r   rU      
isinstancerx   r6   )r   r   r   r   r   rp   rs   rr   s           r=   _adjust_attributes_of_max_poolr      s    (C   ,:++s## ##}{2"'3 y;&*	W		$q(	W		{	W		{
 &# ([( '422r>   
n_dims_onen_dims_zeron_dims_axestuple[_C.Value, Sequence[int]]c                   |                      d|                      d|                    }||k    rK|                      d||                      dt          j        dgt          j                                      }|                      d|d	|||||
          \  }}|                      d|d	|||          \  }}|                      dt          j        |                    }|                      dt          j        |	                    }|                      dt          j        |
                    }|                      d||||          }|                      d||          }||k    rn|                      d|t          j        dgt          j                            }|                      d|t          j        dgt          j                            }||fS )Nr{   r|   r}   rH   r   rI   rK   r~   r   r   )r   r   r   r   SlicerV   r   r   )r2   r:   rp   rr   rs   rt   ru   rw   r   r   r   r   r   indicesr   flatten_indicesendsstartsaxesdeltas                       r=    _aten_max_pool_with_indices_onnxr      s    VQTT'40011IN""ttDDU\1#U[%I%I%IDJJ
 
 44#   	 	K !   A 44
EL$<$<4==DTT*el;&?&?T@@F44
EL$=$=4>>DDD/64>>Edd5'5))GN""dd{EL!EK,P,P,P  
 
 $$y'5<5;3W3W3W$XX!!r>   zaten::max_pool1d
max_pool1drU   F)return_indices)decoratezaten::max_pool2d
max_pool2dr   zaten::max_pool3d
max_pool3dr   zaten::max_pool1d_with_indicesmax_pool1d_with_indicesTzaten::max_pool2d_with_indicesmax_pool2d_with_indiceszaten::max_pool3d_with_indicesmax_pool3d_with_indicesnamestrr   c           	         t          j        dddddd          t          j        dddddd          dfd                        }|S )NTFr?   isrd   r2   r3   inputro   r   rq   r   r   int | Sequence[int]r   ru   rv   c                    t          ||||          \  }}}	}
r;t          | ||||	|
|dz   dgz  dgz  d t                    D                       S t          | ||||	|
|dz             S )NrU   r   c                    g | ]}d |z   S )r    ).0rd   s     r=   
<listcomp>z2_max_pool.<locals>.symbolic_fn.<locals>.<listcomp>P  s    444A!a%444r>   )r   r   ranger   )r2   r   r   r   r   r   ru   rp   rr   rs   rt   r   r   s              r=   symbolic_fnz_max_pool.<locals>.symbolic_fn5  s     2Pfgx2
 2
.gtY  	3a{"{"44{!3!3444   'a	 	 	r>   )r2   r3   r   ro   r   rq   r   rq   r   r   r   rq   ru   rv   r	   quantized_args
parse_args)r   r   r   r   s    `` r=   	_max_poolr   
  su    V #D%ueLLT4tSAA% % % % % % BA ML%N r>   2tuple[Sequence[int], Sequence[int], Sequence[int]]c                @   t          |t                    r|g| z  }n|}t          |t                    r
|g| z  dz  }n:t          |          dk    r	|| z  dz  }nt          |          dk    r|| z  }n|dz  }t          |t                    r|g| z  }n|s|}n|}|||fS )r   r   rU   r   )r   r   r   r   rp   rs   rr   s          r=   _adjust_attributes_of_avg_poolr   b  s     +s## ##}{2"'3 y;&*	W		$q(	W		${&# ([( '4((r>   zaten::avg_pool1d
avg_pool1dzaten::avg_pool2d
avg_pool2dzaten::avg_pool3d
avg_pool3dc           
         t          j        ddddddd          t          j        ddddddd          	 ddfd                        }|S )NTFr?   r   rd   re   r   ro   r   rq   r   r   r   ru   rx   count_include_padc           	     l    t          |||          \  }}	}
|                     d|||||
|	          }|S )NAveragePool)r   count_include_pad_ir   r   r   )r   rY   )r2   r   r   r   r   ru   r   divisor_overriderp   rr   rs   resultr   s               r=   r   z_avg_pool.<locals>.symbolic_fn  s[     'Efg'
 '
#gt ! 1'  
 
 r>   N)r   ro   r   rq   r   rq   r   r   ru   rx   r   rx   r   )r   r   r   s    ` r=   	_avg_poolr     s{     #D%ueUSST4sCHH       IH TS4 r>   zaten::upsample_nearest1dupsample_nearest1dnearestzaten::upsample_nearest2dupsample_nearest2d   zaten::upsample_nearest3dupsample_nearest3d   zaten::upsample_linear1dupsample_linear1dlinearzaten::upsample_bilinear2dupsample_bilinear2dzaten::upsample_trilinear3dupsample_trilinear3dc                R     t          j        ddd           fd            }|S )NTFc                   t          j        | |          \  }}t          j                   t          j        |          }|rt          j        d|          S |t          j        | ||          }|                     d||          S )Nzalign_corners == TrueResizemode_s)r	   _get_interpolate_attributes_interpolate_warning_maybe_get_scalar_unimplemented_interpolate_size_to_scalesrY   )	r2   r   output_sizer<   scalesalign_cornersri   interpolate_moder   s	         r=   r   z!_interpolate.<locals>.symbolic_fn  s     / K!
 !
 	,-=>>>'9-HH 	X"1$8OQVWWW>$@5+s F ttHeV4DtEEEr>   )r	   r   )r   ri   r   r   s   ``` r=   _interpolater     sS    2 #D%77F F F F F F 87F r>   zaten::__interpolatec                l    t          j        | |||||          \  }}|                     d|||          S )Nr   r   )r	    _interpolate_get_scales_and_moderY   )	r2   r   sizescale_factormoder   recompute_scale_factor	antialiasr   s	            r=   __interpolater     sC     #C	5$dM LFD 44%4555r>   r   torch._C.Valuer   $list | torch.Tensor | torch._C.Valuer   r   steps+list | torch.Tensor | torch._C.Value | Nonec                x    d d fd	}d } ||          dk    r, ||          t           j        k    r| ||          dk    r|S  ||          } ||d          } ||t           j                  }|                     d||||          S  ||d          }                     d|||||          S )	Nc                    | dS t          | t          j        j                  oU|                                                                 dk    o+t          |                                 t          j                  S )NTzprim::Constant)r   rZ   r   ValuenodekindtypeNoneType)values    r=   is_none_valuez_slice.<locals>.is_none_value  s`    =4uehn-- 6

!!##'7765::<<55	
r>   c                Z    |           r||g} t          | t          t          j        f          r)                    dt          j        |                     S t          j        |           }|dk    rt          j        | dg          S |dk    r| S t          j
        d| |           )NrH   rK   r   rU   zRank must be 0 or 1, not )r   listrZ   TensorrY   r[   r	   _get_tensor_rank_unsqueeze_helperr   SymbolicValueError)list_or_valuedefault_valuerankr2   r   s      r=   to_slice_inputz_slice.<locals>.to_slice_input  s    ='' 	,M,E*OMmdEL%9:: 	I44
EL,G,G4HHH/>>199"4QsKKK199  '...
 
 	
r>   c                    t          | t          t          j        f          rt	          |           dk    r| d         S d S t          j        | d          S )NrU   r   rd   )r   r   rZ   r   r6   r	   _maybe_get_const)r  s    r=   get_const_valuez_slice.<locals>.get_const_value  sQ    mdEL%9:: 	=!!Q&&$Q''4/sCCCr>   r   rU   )r  r   r   )r   	INT64_MAXrY   )	r2   r   r   r   r   r   r  r	  r   s	   `       @r=   _slicer    s   
 
 

 
 
 
 
 
 
"D D D 	1$$OD!!Z%999]ooe4499>$D^F!444F>$j.BCCCD}ttGUFD$777N5222E44dE:::r>   zaten::slicec                    t          |          dk    r|\  }}}}n2t          |          dk    r
|\  }}}dg}nt          j        d|          t          j        | |||||          S )Nr   r   r   zUnknown aten::slice signaturer   r   r   r   )r6   r   r  r	   _slice_helper)r2   r:   r<   dimsstartendsteps          r=   r-   r-   $  s    
4yyA~~!%eS$$	TasDs'(GNNN(	   r>   z
aten::flipr   c                    t          j        | ||dgt          |          z  t          j         gt          |          z  dgt          |          z            S )Nr  )r	   r  r6   r   r
  )r2   r   r  s      r=   r   r   :  s^     (	tc$ii##$s4yy0dSYY   r>   z
aten::fmodc                4    |                      d||d          S )NrO   rU   rP   )rY   )r2   r   r;   s      r=   r   r   G  s    44ueA4...r>   zaten::embedding_bagc
                   |r t           j        rt          j        d          S |	|	dk    rt	          d          t          j        d           t          j        |d          }
|
_|r|
dz
  }|}nI|
}||                     dt          j
        t          j        g                    g} | j        dg|R d	di}g }t          |          D ]}t          j        | t          j        | |t          j
        d          t          j
        |                    dg          }t          j        | t          j        | |t          j
        d          t          j
        |dz                       dg          }|                     dt          j
        dg                    }|                     d
||||          }|                     d||          }t          j        |          sG|                     d
||||          }t          j        | |dg          }|                     d||          }|dk    rt          j        | |dgd          }n;|dk    r|                     d|dgd          }n|                     d|dgd          }t          j        | |dg          }|                    |            | j        dg|R d	di}|d d d fS t          j        d          S )Nz7embedding_bag with scale_grad_by_freq for training moder   zembedding_bag with padding_idxzExport of embedding_bag with dynamic input/offsets shape is not supported in opset 10. Please use opset 11 or higher to export model for dynamic input shape.'rU   rH   rK   Concataxis_ir   GatherMul)axes_i
keepdims_i
ReduceMean	ReduceMaxziembedding_bag with unknown shape of offsets for opset 10 is not supported. please use opset 11 or higher.)r   export_trainingr	   _onnx_unsupportedRuntimeErrorwarningswarn_get_tensor_dim_sizerY   rZ   r[   sysmaxsizer   r  r7   select_is_none_reducesum_helperappend)r2   embedding_matrixr   offsetsscale_grad_by_freqr   sparseper_sample_weightsinclude_last_offsetpadding_idxoffsets_dim_0
offset_lenoffsets_extendedlist_rd   start_end_axes_indices_row
embeddingsper_sample_weights_rowoutputs                         r=   r   r   L  sD     
g5 
0E
 
 	
 ;!#3#3;<<<M	R   $8!DDM  		K&*J&&JZs{m)D)DEE   $qtHJ/?JJJJJz"" #	% #	%A$6a!15<??ELQROOTT F
 #4'a%,q1u:M:M   D DDU\1#->->D??E$$wuEEKh(8+FFJ"+,>?? M)*/u* *& *9)J-s* *& TT%5KLL
qyy,>z1#!  

 TT,
A3STTUU

TT+z1#RSTTT
(:1j1#NNJLL$$$$h1111q11 tT4''0-
 
 	
r>   z%aten::fake_quantize_per_tensor_affine   c           	        ||fdk    rt          j        dddd|           ||fdvrt          j        d| d| d	|          t          j        |          }|t          j        dddd
|           |                                j        }|dk    r(|                     d|t          j	        j
                  }n'|                     d|t          j	        j                  }|                     d|                     d|||          ||          S )N)r   r>  r   r0      z=Quantize range (0, 127) not supported, requires opset 13 Clip))r      r=  r>  zLFor (quant_min, quant_max), ONNX allows only (0, 255) and (-128, 127). Got (z, )z Non-constant scale not supportedr   Castto_iDequantizeLinearQuantizeLinear)r	    _onnx_opset_unsupported_detailedr   r  r   floatdatarY   _C_onnxTensorProtoDataTypeUINT8INT8)r2   inputsscale
zero_point	quant_min	quant_maxs         r=   r   r     sN    	9))8-K	
 	
 	
 	9%<<<'.. .!*. . .
 
 	

 -e44E}8-.	
 	
 	
 KKMMEA~~TT&*73N3TTUU

TT&*73N3STTT
44	vuj99	  r>   zaten::isinfc                x    |                      d|                      d|t          j        j                            S )NIsInfrD  rE  )rY   rL  rM  DOUBLEr2   r   s     r=   r   r     s.    44fe'2M2TUUVVVr>   zaten::isfinitec                    t          | |          }t          j        | |          }t          j        | t          j        | ||                    S r   )r   r7   isnan__not___or_)r2   r   inf_nodenan_nodes       r=   r   r     s@    QH|Au%%H=FLHh??@@@r>   zaten::quantize_per_tensorc                "   t          j        |dd          }|                     d|t          j        |                                                    }|                     d|t          j        j                  }t          j	        | |||          S )Nrd   rJ   rD  rE  )
r	   
_get_constrY   r   JitScalarType	onnx_typerL  rM  FLOATquantize_helper)r2   r   rQ  rR  rJ   s        r=   r   r     s    &uc7;;E
!:5!A!A!K!K!M!M   J DDW%@%FDGGE*1eUJGGGr>   zaten::dequantizec                8    t          j        | |          d         S r5   r	   dequantize_helperrX  s     r=   r   r     s    ,Q66q99r>   zaten::nan_to_numfc                   t          j        |          s|S t          j                            |                                          }|d}t          j        | |          }|                     d||                     dt          j
        |g|                    |          }t          j        |          }||j        }t          j        | t          | |          t          j        | ||                     dt          j        dg                                        }	|                     d|	|                     dt          j
        |g|                    |          }
||j        }t          j        | t          | |
          t          j        | |
|                     dt          j        dg                                        }|                     d||                     dt          j
        |g|                    |
          S )N        rW   rH   rI   rK   r   )r	   rX   r   ra  
from_valuerJ   r7   rZ  rY   rZ   r[   finfomaxlogical_andr   gt
LongTensorminlt)r2   r   nanposinfneginfinput_dtypenan_cond
nan_resultrl  posinf_condnan_posinf_resultneginf_conds               r=   r   r     s   
 !%(( +66u==CCEEK
{|Au%%H	Zse;!G!G!GHH	 J K$$E~$	a	!Zj%:JA3:O:O!P!PQQ K
 	Zvhk!J!J!JKK	  ~$	a"##	 !$$z5;KQC;P;P$"Q"Q	
 	
 K 44	Zvhk!J!J!JKK	  r>   zquantized::linearc                (   t          j        | |          \  }}}}t          j        | |          \  }	}
}}t          j        | |||
          }t          j        | |          \  }}}}t          j        | ||	|          }t          j        | |||          S r   )r	   rg  requantize_bias_helperr7   r   rd  r2   q_inputq_weightbiasop_scaleop_zero_pointr   input_scaler   weightweight_scaleq_biasr<  s                r=   r)   r)   &  s      /@GLLE;1!0!B1h!O!OFL!Q3At[,WWF#5a@@MD!Q]1eVT22F*1fhNNNr>   zquantized::linear_reluc                R   t          j        | |          \  }}}}t          j        | |          \  }	}
}}t          j        | |||
          }t          j        | |          \  }}}}t          j        | ||	|          }t          j        | |          }t          j        | |||          S r   )r	   rg  r}  r7   r   relurd  r~  s                r=   r*   r*   4  s      /@GLLE;1!0!B1h!O!OFL!Q3At[,WWF#5a@@MD!Q]1eVT22F[F##F*1fhNNNr>   zquantized::addc                    t          j        | |          \  }}}}t          j        | |          \  }}}}t          j        | ||          }t          j        | |||          S r   )r	   rg  r7   addrd  r2   xyr  r  r   r<  s          r=   r   r   C  `     21a88JAq!Q 21a88JAq!QZ1a  F*1fhNNNr>   zquantized::add_reluc                    t          j        | |          \  }}}}t          j        | |          \  }}}}t          j        | ||          }t          j        | |          }t          j        | |||          S r   )r	   rg  r7   r  r  rd  r  s          r=   r   r   M  sq     21a88JAq!Q 21a88JAq!QZ1a  F[F##F*1fhNNNr>   zquantized::mulc                    t          j        | |          \  }}}}t          j        | |          \  }}}}t          j        | ||          }t          j        | |||          S r   )r	   rg  r7   mulrd  r  s          r=   r+   r+   X  r  r>   zquantized::hardswishc                    t          j        | |          \  }}}}t          j        | |          }t          j        | |||          S r   )r	   rg  r7   	hardswishrd  r2   r  r  r  r   r<  s         r=   r%   r%   b  sE     21a88JAq!Qa##F*1fhNNNr>   zquantized::sigmoidc                    t          j        | |          \  }}}}t          j        | |          }t          j        | |||          S r   )r	   rg  r7   sigmoidrd  r  s         r=   r,   r,   k  sD     21a88JAq!Q^Aq!!F*1fhNNNr>   zquantized::leaky_reluc                    t          j        | |          \  }}}}t          j        | |||          }t          j        | |||          S r   )r	   rg  r7   
leaky_relurd  )r2   r  negative_slopeinplacer  r  r   r<  s           r=   r(   r(   t  sK     !21a88JAq!Qq!^W==F*1fhNNNr>   zquantized::layer_normc           	         t          j        | |          \  }}}}t          j        | |||||d          }	t          j        | |	||          S NF)r	   rg  r7   
layer_normrd  )
r2   r  normalized_shaper  r  epsr  r  r   r<  s
             r=   r'   r'     sR     !21a88JAq!Qq!%5vtS%PPF*1fhNNNr>   zquantized::group_normc           	         t          j        | |          \  }}}}t          j        | |||||d          }	t          j        | |	||          S r  )r	   rg  r7   
group_normrd  )
r2   r  
num_groupsr  r  r  r  r  r   r<  s
             r=   r$   r$     sQ     !21a88JAq!Qq!ZsEJJF*1fhNNNr>   zquantized::instance_normc                    t          j        | |          \  }}}}t          j        | |||d d dd|d
  
        }	t          j        | |	||          S )NFrj  )r	   rg  r7   instance_normrd  )
r2   r  r  r  r  r  r  r   r   r<  s
             r=   r&   r&     s^     %6q'BBNE1a!	5&$dE3U F *1fhNNNr>   zquantized::conv1d_reluc
           
     Z   t          j        | |          \  }
}}}t          j        | |          \  }}}}t          j        | |||          }t          j        | |          \  }}}}t          j        | |
||||||          }t          j        | |          }t          j        | |||	          S r   )r	   rg  r}  r7   conv1dr  rd  r2   r  r  r  r   r   r   groupsr  r  r   r  r   r  r  r  r<  s                    r=   r   r           /@GLLE;1!0!B1h!O!OFL!Q3At[,WWF#5a@@MD!Q]1eVT67HfUUF[F##F*1fhNNNr>   zquantized::conv2d_reluc
           
     Z   t          j        | |          \  }
}}}t          j        | |          \  }}}}t          j        | |||          }t          j        | |          \  }}}}t          j        | |
||||||          }t          j        | |          }t          j        | |||	          S r   )r	   rg  r}  r7   conv2dr  rd  r  s                    r=   r   r     r  r>   zquantized::conv3d_reluc
           
     Z   t          j        | |          \  }
}}}t          j        | |          \  }}}}t          j        | |||          }t          j        | |          \  }}}}t          j        | |
||||||          }t          j        | |          }t          j        | |||	          S r   )r	   rg  r}  r7   conv3dr  rd  r  s                    r=   r   r     r  r>   zquantized::conv1dc
           
     0   t          j        | |          \  }
}}}t          j        | |          \  }}}}t          j        | |||          }t          j        | |          \  }}}}t          j        | |
||||||          }t          j        | |||	          S r   )r	   rg  r}  r7   r  rd  r  s                    r=   r   r           /@GLLE;1!0!B1h!O!OFL!Q3At[,WWF#5a@@MD!Q]1eVT67HfUUF*1fhNNNr>   zquantized::conv2dc
           
     0   t          j        | |          \  }
}}}t          j        | |          \  }}}}t          j        | |||          }t          j        | |          \  }}}}t          j        | |
||||||          }t          j        | |||	          S r   )r	   rg  r}  r7   r  rd  r  s                    r=   r   r     r  r>   zquantized::conv3dc
           
     0   t          j        | |          \  }
}}}t          j        | |          \  }}}}t          j        | |||          }t          j        | |          \  }}}}t          j        | |
||||||          }t          j        | |||	          S r   )r	   rg  r}  r7   r  rd  r  s                    r=   r    r    -  r  r>   zquantized::conv_transpose1dc                2   t          j        | |          \  }}}}t          j        | |          \  }}}}t          j        | |||          }t          j        | |          \  }}}}t          j        | ||||||||	  	        }t          j        | ||	|
          S r   r	   rg  r}  r7   conv_transpose2drd  r2   r  r  r  r   r   output_paddingr   r  r  r  r   r  r   r  r  r  r<  s                     r=   r!   r!   D        /@GLLE;1!0!B1h!O!OFL!Q3At[,WWF#5a@@MD!Q$	5&$ F *1fhNNNr>   zquantized::conv_transpose2dc                2   t          j        | |          \  }}}}t          j        | |          \  }}}}t          j        | |||          }t          j        | |          \  }}}}t          j        | ||||||||	  	        }t          j        | ||	|
          S r   r  r  s                     r=   r"   r"   ^  r  r>   zquantized::conv_transpose3dc                2   t          j        | |          \  }}}}t          j        | |          \  }}}}t          j        | |||          }t          j        | |          \  }}}}t          j        | ||||||||	  	        }t          j        | ||	|
          S r   )r	   rg  r}  r7   conv_transpose3drd  r  s                     r=   r#   r#   x  r  r>   zquantized::catq_inputsri   r  r  c                     t          j        |          } fd|D             }  j        dg|R d|i}t          j         |||          S )Nc                F    g | ]}t          j        |          d          S )r   rf  )r   r   r2   s     r=   r   z!quantized_cat.<locals>.<listcomp>  s8       ;@)!U33A6  r>   r  r  )r	   _unpack_listrY   rd  )r2   r  ri   r  r  unpacked_inputsdequantizedconcatenateds   `       r=   r   r     sw     &28<<O   DS  K 14;;;;;s;;L*1lHmTTTr>   )r2   r3   r   )r2   r3   r:   ro   rp   rq   rr   rq   rs   rq   rt   rq   ru   rv   rw   rx   ry   ro   )r   rx   r   r   r   r   r   r   r   r   ry   r   )r2   r3   r:   ro   rp   rq   rr   rq   rs   rq   rt   rq   ru   rv   rw   rx   r   rq   r   rq   r   rq   ry   r   )r   r   r   rx   r   rv   )
r   rx   r   r   r   r   r   r   ry   r   )r2   r3   r   r   r   r   r   r   r   r   r   r   rB  )r2   r3   r  ro   ri   rx   r  ro   r  ro   ry   ro   )K
__future__r   	functoolsr%  r"  typingr   rZ   torch._C._onnxr   _onnxrL  
torch.onnxr   r   r   r	   r
   r7   torch.onnx._globalsr   torch.onnx._internalr   r   __all__partialonnx_symbolic_onnx_symbolicr   r   r9   rC   r.   r/   r   r   r   _apply_paramsr   r   r   r   r   r  r-   r   r   r   r   r   r   r   r   r   r)   r*   r   r   r+   r%   r,   r(   r'   r$   r&   r   r   r   r   r   r    r!   r"   r#   r   r   r>   r=   <module>r     s[   # " " " " "     



                                                  ( ' ' ' ' ' 8 8 8 8 8 8 8 8# # #L #"<#=RHHH 9 9 9 9 Cc**H H H +*H %&&5 5 5 '&5( Cc622T T T T 32 T Cc3V<<    =< $ $ $ $P(3 (3 (3 (3V5" 5" 5" 5"p +o+L!ERRRS   +o+L!ERRRS   +o+L!ERRRS   #%%%	
 	
 	
	 	 	 #%%%	
 	
 	
	 	 	 #%%%	
 	
 	
	 	 	* * *	 		 		 		 	 	 T*\) ) ) )@ +o+L!<<=   +o+L!<<=   +o+L!<<=   	 	 	 @ +o+,@!YOOP   +o+,@!YOOP   +o+,@!YOOP   +o+,?HMMN   +o+,A1hOOP    +o+,BAxPPQ   	 	 	 	 	 	 0& %&&6 6 6 '&6, :>7; 7; 7; 7; 7;t    * C&&   '&  / / / / %&&Cc3S#sCHHQ
 Q
 Q
 IH '&Q
h 788Cc344 + + + + 54 98+\ W W W W  !!A A A "!A +,,H H H -,H "##: : : $#: "##Cc3/// / / 0/ $#/l #$$
O 
O 
O %$
O ())O O O *)O  !!O O O "!O %&&O O O '&O  !!O O O "!O &''O O O ('O $%%O O O &%O '((O O O )(O '((O O O )(O" '((O O O )(O" *++Cc3S99O O O :9 ,+O$ ())O O O *)O. ())O O O *)O. ())O O O *)O. #$$O O O %$O, #$$O O O %$O, #$$O O O %$O, -..O O O /.O2 -..O O O /.O2 -..O O O /.O2  !!Cc3//U U U 0/ "!U U Ur>   