
    sg                       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j2                  ej4                  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#	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ$ ed ejJ                  ddd      g        ed! ejJ                  d"d#d      g        ed$ ejJ                  d%d&d      g        ed' ejJ                  d(dd)      g        ed* ejJ                  d+d#d)      g        ed, ejJ                  d-d&d)      g       dd.                                          Z&	 	 	 	 	 	 	 	 	 	 dd/Z' ed0 ejJ                  d1d      g        ed2 ejJ                  d3d#      g        ed4 ejJ                  d5d&      g       d6                      Z( ed7 ejJ                  d8d&d9      g        ed: ejJ                  d;d<d9      g        ed= ejJ                  d>d?d9      g        ed@ ejJ                  dAd&dB      g        edC ejJ                  dDd<dB      g        edE ejJ                  dFd?dB      g       dG                                           Z) edH      	 	 ddI       Z*	 d	 	 	 	 	 	 	 	 	 	 	 ddJZ+ edK      ddL       Z, edM       ej:                  ddN      ddO              Z- edP      ddQ       Z. edR       ej:                  ddddddddd	      	 	 ddS              Z/ edT       ej:                  ddddd      	 	 d	 ddU              Z0 edV      ddW       Z1 edX      ddY       Z2 edZ      dd[       Z3 ed\      dd]       Z4 ed^       ej:                  dd_d_d_      dd`              Z5 eda      	 	 ddb       Z6 edc      	 	 ddd       Z7 ede      ddf       Z8 edg      ddh       Z9 edi      ddj       Z: edk      ddl       Z; edm      ddn       Z< edo      	 	 ddp       Z= edq      	 	 ddr       Z> eds      	 	 ddt       Z? edu       ej:                  dddd_dd      	 	 ddv              Z@ edw      	 	 ddx       ZA edy      	 	 ddz       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              ZJy)    )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::divc                h    t        |      dk(  rt        j                  | ||      S t        | ||g| S Nr   )lenopset9true_divide_div_rounding_mode)gselfotherargss       N/var/www/html/venv/lib/python3.12/site-packages/torch/onnx/symbolic_opset10.pyr   r   L   s6    
4yA~!!!T511!!T58488    vsc                V    |dk(  rt        | ||      S t        j                  | |||      S )Nfloor)_floor_divider5   r7   )r8   r9   r:   rounding_modes       r<   r7   r7   T   s0    Qe,,((D%GGr=   zaten::_floor_dividec                   t        j                  |      st        j                  |      r)t        j                  | ||      }| j	                  d|      S | j	                  d||      }| j	                  dt        j                  dt
        j                              }| j	                  d| j	                  d||      | j	                  d||            }| j	                  d	||d
      }| j	                  d|| j	                  d| j	                  d||                  }| j	                  dt        j                  dt
        j                              }	| j	                  d||	      }
| j	                  d||
|      S )NFloorDivConstantr   dtypevalue_tXorLessModfmod_iAndNotEqual   SubWhere)r	   _is_fpr5   r6   optorchtensorint64)r8   r9   r:   outr   zeronegativemod
fixup_maskonefixups              r<   rB   rB   \   s-   d#'='=e'D  D%0ttGS!! dd5$&ttJQekk(JtK44qttFD$7feT9RS dd5$ad0TT%144qttGS$7O+PQ
dd:u||AU[['IdJUC%ttGZ44r=   z
aten::sortinonec                6    t        j                  | ||||      S )N)	decendingr\   )r	   _sort_helper)r8   r9   dimrf   r\   s        r<   r.   r.   q   s     ''4	sSSr=   z
aten::topkc           	     :    t        j                  | ||||||      S )N)largestsortedr\   )r	   _topk_helper)r8   r9   krh   rj   rk   r\   s          r<   r/   r/   w   s&     ''	4CS r=   c                   | j                  d| j                  d|            }||k(  rH| j                  d|| j                  dt        j                  dgt        j                                    }| j                  d|d	|||||
      \  }	}
||k(  rH| j                  d|	| j                  dt        j                  dgt        j                                    }	|	S )NSizeShape	UnsqueezerG   r   rH   rJ   MaxPool   outputsceil_mode_idilations_ikernel_shape_ipads_i	strides_iSqueezerX   rY   rZ   r[   )r8   r9   kernel_shapestridespads	dilations	ceil_modeunbatched_rank	self_rankpool_result_s              r<   _aten_max_pool_onnxr      s     VQTT'401IN"ttDDU\\1#U[[%IDJ
 TT#  	NK N"ddDDU\\1#U[[%IDJ
 r=   c                ^   t        |t              r|g| z  }t        |t              r|g| z  }n|}t        |t              r
|g| z  dz  }nAt        |      dk(  r	|| z  dz  }n*t        |      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.rs   rT      
isinstanceintr4   )expand_sizekernel_sizestridepaddingdilationr}   r   r~   s           r<   _adjust_attributes_of_max_poolr      s     (C :++s##}{2"'3y;&*	W	$q(	W	{	W	{
 &#([('422r=   c                r   | j                  d| j                  d|            }||k(  rH| j                  d|| j                  dt        j                  dgt        j                                    }| j                  d|d	|||||
      \  }}| j                  d|d	|||      \  }}| j                  dt        j                  |            }| j                  dt        j                  |	            }| j                  dt        j                  |
            }| j                  d||||      }| j                  d||      }||k(  rp| j                  d|t        j                  dgt        j                              }| j                  d|t        j                  dgt        j                              }||fS )Nro   rp   rq   rG   r   rH   rJ   rr   rs   rt   )ru   rw   rx   rz   SlicerU   r{   r|   )r8   r9   r}   r~   r   r   r   r   
n_dims_onen_dims_zeron_dims_axesr   r   indicesr   flatten_indicesendsstartsaxesdeltas                       r<    _aten_max_pool_with_indices_onnxr      s    VQTT'401IN"ttDDU\\1#U[[%IDJ
 44#   	K !  A 44
ELL$<4=DTT*ell;&?T@F44
ELL$=4>DDD/64>Edd5'5)GN"dd{ELL!EKK,P  
 $$y'5<<5;;3W$X!!r=   zaten::max_pool1d
max_pool1drT   F)return_indices)decoratezaten::max_pool2d
max_pool2drs   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_indicesc           	         t        j                  dddddd      t        j                  dddddd      	 	 	 	 	 	 	 	 	 	 	 	 	 	 dfd              }|S )NTFr>   isrc   c                    t        ||||      \  }}}	}
r:t        | ||||	|
|dz   dgz  dgz  t              D cg c]  }d|z   	 c}      S t        | ||||	|
|dz         S c c}w )NrT   r   rs   )r   r   ranger   )r8   inputr   r   r   r   r   r}   r~   r   r   rc   r   r   s               r<   symbolic_fnz_max_pool.<locals>.symbolic_fn5  s     2Pfgx2
.gtY 3a{"{"!&{!34A!a%4  'a	 	 5s   A')r8   jit_utils.GraphContextr   _C.Valuer   Sequence[int]r   r   r   int | Sequence[int]r   r   r   boolr	   quantized_args
parse_args)namer   r   r   s    `` r<   	_max_poolr   
  s    V ##D%ueLT4tSA%!%% #% 	%
 %%  % % B M%N r=   c                   t        |t              r|g| z  }n|}t        |t              r
|g| z  dz  }n0t        |      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   rs   rT   r   )r   r   r   r   r}   r   r~   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   rc   rd   c           	     \    t        |||      \  }}	}
| j                  d|||||
|	      }|S )NAveragePool)rv   count_include_pad_irx   ry   rz   )r   rX   )r8   r   r   r   r   r   count_include_paddivisor_overrider}   r~   r   resultr   s               r<   r   z_avg_pool.<locals>.symbolic_fn  sQ     'Efg'
#gt ! 1'  
 r=   N)r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   s    ` r<   	_avg_poolr     s     ##D%ueUST4sCH  # 	
 %   I T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                N     t        j                  ddd       fd       }|S )NTFc                   t        j                  | |      \  }}t        j                         t        j                  |      }|rt        j                  d|      S |t        j
                  | ||      }| j                  d||      S )Nzalign_corners == TrueResizemode_s)r	   _get_interpolate_attributes_interpolate_warning_maybe_get_scalar_unimplemented_interpolate_size_to_scalesrX   )	r8   r   output_sizer;   scalesalign_cornersrh   interpolate_moder   s	         r<   r   z!_interpolate.<locals>.symbolic_fn  s     / K K!
 	,,-=>'99-H"11$8OQVWW>$@@5+sF ttHeV4DtEEr=   )r	   r   )r   rh   r   r   s   ``` r<   _interpolater     s0    2 ##D%7F 8F r=   zaten::__interpolatec                f    t        j                  | |||||      \  }}| j                  d|||      S )Nr   r   )r	    _interpolate_get_scales_and_moderX   )	r8   r   sizescale_factormoder   recompute_scale_factor	antialiasr   s	            r<   __interpolater     s>     #CC	5$dMLFD 44%455r=   c                H    d d fd	}d } ||      dk(  r( ||      t         j                  k(  r| ||      dk(  r|S  ||      } ||d      } ||t         j                        }| j                  d||||      S  ||d      } j                  d|||||      S )	Nc                    | yt        | t        j                  j                        xrK | j	                         j                         dk(  xr( t        | j                         t        j                        S )NTzprim::Constant)r   rY   r   ValuenodekindtypeNoneType)values    r<   is_none_valuez_slice.<locals>.is_none_value  sW    =uehhnn- 6

!!#'7765::<5	
r=   c                N    |       r||g} t        | t        t        j                  f      r&j	                  dt        j
                  |             S t        j                  |       }|dk(  rt        j                  | dg      S |dk(  r| S t        j                  d| |       )NrG   rJ   r   rT   zRank must be 0 or 1, not )r   listrY   TensorrX   rZ   r	   _get_tensor_rank_unsqueeze_helperr   SymbolicValueError)list_or_valuedefault_valuerankr8   r   s      r<   to_slice_inputz_slice.<locals>.to_slice_input  s    'M,E*OMmdELL%9:44
ELL,G4HH//>19"44QsKK19  '''v.
 	
r=   c                    t        | t        t        j                  f      rt	        |       dk(  r| d   S y t        j                  | d      S )NrT   r   rc   )r   r   rY   r   r4   r	   _maybe_get_const)r   s    r<   get_const_valuez_slice.<locals>.get_const_value  sC    mdELL%9:=!Q&$Q''//sCCr=   r   rT   )r   r   r   )r   	INT64_MAXrX   )	r8   r   r   r   r   stepsr   r   r   s	   `       @r<   _slicer     s    

"D 	1$D!Z%9%99]oe49$DF!4F$j.B.BCD}ttGUFD$7752E44dE::r=   zaten::slicec                    t        |      dk(  r|\  }}}}n.t        |      dk(  r
|\  }}}dg}nt        j                  d|      t        j                  | |||||      S )Nr   r   r   zUnknown aten::slice signaturer   r   r   r   )r4   r   r   r	   _slice_helper)r8   r9   r;   dimsstartendsteps          r<   r-   r-   $  sr    
4yA~!%eS$	TasDs''(G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  r4   r   r   )r8   r   r  s      r<   r   r   :  sT     ((	tc$i###$s4y0dSY r=   z
aten::fmodc                ,    | j                  d||d      S )NrN   rT   rO   )rX   )r8   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      }
|
S|r|
dz
  }|}nO|
}|| j                  dt        j                  t        j                  g            g} | j                  dg|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      }| j                  dt        j                  dg            }| j                  d
||||      }| j                  d||      }t        j"                  |      s@| j                  d
||||      }t        j                  | |dg      }| j                  d||      }|dk(  rt        j$                  | |dgd      }n2|dk(  r| j                  d|dgd      }n| j                  d|dgd      }t        j                  | |dg      }|j'                  |         | j                  dg|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.'rT   rG   rJ   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_sizerX   rY   rZ   sysmaxsizer   r   r5   select_is_none_reducesum_helperappend)r8   embedding_matrixr   offsetsscale_grad_by_freqr   sparseper_sample_weightsinclude_last_offsetpadding_idxoffsets_dim_0
offset_lenoffsets_extendedlist_rc   start_end_axes_indices_row
embeddingsper_sample_weights_rowoutputs                         r<   r   r   L  s    g5500E
 	
 ;!#3;<<MM	R $88!DM &*J&&JZs{{m)DE   $qttHJ/?JJz" #	%A$66a!15<<?ELLQROTF
 #44'a%,,q1u:M D DDU\\1#->D?E$$wuEKh(8+FJ"++,>?)*/u*& *9)J)J-s*& TT%5KL
qy,>>z1#!
 TT,
A3STTU
TT+z1#RSTT
(::1j1#NJLL$G#	%J h11q1 tT4''00-
 	
r=   z%aten::fake_quantize_per_tensor_affinec           	     $   ||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                         j                  }|dk(  r-| j                  d|t        j                  j                        }n,| j                  d|t        j                  j                        }| j                  d| j                  d|||      ||      S )N)r      r   r0      z=Quantize range (0, 127) not supported, requires opset 13 Clip))r      ir1  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datarX   _C_onnxTensorProtoDataTypeUINT8INT8)r8   inputsscale
zero_point	quant_min	quant_maxs         r<   r   r     s&    	9)88-K	
 	9%<<'';b1.
 	

 --e4E}88-.	
 KKMEA~TT&*73N3N3T3TTU
TT&*73N3N3S3STT
44	vuj9	 r=   zaten::isinfc                z    | j                  d| j                  d|t        j                  j                              S )NIsInfr6  r7  )rX   r>  r?  DOUBLEr8   r   s     r<   r   r     s.    44fe'2M2M2T2TUVVr=   zaten::isfinitec                    t        | |      }t        j                  | |      }t        j                  | t        j                  | ||            S r   )r   r5   isnan__not___or_)r8   r   inf_nodenan_nodes       r<   r   r     s;    QH||Au%H==FLLHh?@@r=   zaten::quantize_per_tensorc                "   t        j                  |dd      }| j                  d|t        j                  |      j                               }| j                  d|t        j                  j                        }t        j                  | |||      S )Nrc   rI   r6  r7  )
r	   
_get_constrX   r   JitScalarType	onnx_typer>  r?  FLOATquantize_helper)r8   r   rC  rD  rI   s        r<   r   r     s}    &&uc7;E
!:!:5!A!K!K!M  J DDW%@%@%F%FDGE**1eUJGGr=   zaten::dequantizec                4    t        j                  | |      d   S r3   )r	   dequantize_helperrJ  s     r<   r   r     s    ,,Q6q99r=   zaten::nan_to_numfc                   t        j                  |      s|S t        j                  j	                  |      j                         }|d}t        j                  | |      }| j                  d|| j                  dt        j                  |g|            |      }t        j                  |      }||j                  }t        j                  | t        | |      t        j                  | || j                  dt        j                   dg                        }	| j                  d|	| j                  dt        j                  |g|            |      }
||j"                  }t        j                  | t        | |
      t        j$                  | |
| j                  dt        j                   dg                        }| j                  d|| j                  dt        j                  |g|            |
      S )N        rV   rG   rH   rJ   r   )r	   rW   r   rS  
from_valuerI   r5   rL  rX   rY   rZ   finfomaxlogical_andr   gt
LongTensorminlt)r8   r   nanposinfneginfinput_dtypenan_cond
nan_resultr]  posinf_condnan_posinf_resultneginf_conds               r<   r   r     s   
 !!%(++66u=CCEK
{||Au%H	Zse;!GH	J KK$E~$$	a		!Zj%:J:JA3:O!PQK
 	Zvhk!JK	 ~$$	a"#		 !$$z5;K;KQC;P$"Q	
K 44	Zvhk!JK	 r=   zquantized::linearc                4   t        j                  | |      \  }}}}t        j                  | |      \  }	}
}}t        j                  | |||
      }t        j                  | |      \  }}}}t        j                  | ||	|      }t        j
                  | |||      S r   )r	   rX  requantize_bias_helperr5   r   rV  r8   q_inputq_weightbiasop_scaleop_zero_pointr   input_scaler   weightweight_scaleq_biasr/  s                r<   r)   r)   &  s      /@@GLE;1!0!B!B1h!OFL!Q33At[,WF#55a@MD!Q]]1eVT2F**1fhNNr=   zquantized::linear_reluc                `   t        j                  | |      \  }}}}t        j                  | |      \  }	}
}}t        j                  | |||
      }t        j                  | |      \  }}}}t        j                  | ||	|      }t        j
                  | |      }t        j                  | |||      S r   )r	   rX  rn  r5   r   relurV  ro  s                r<   r*   r*   4  s      /@@GLE;1!0!B!B1h!OFL!Q33At[,WF#55a@MD!Q]]1eVT2F[[F#F**1fhNNr=   zquantized::addc                    t        j                  | |      \  }}}}t        j                  | |      \  }}}}t        j                  | ||      }t        j                  | |||      S r   )r	   rX  r5   addrV  r8   xyrs  rt  r   r/  s          r<   r   r   C  _     221a8JAq!Q 221a8JAq!QZZ1a F**1fhNNr=   zquantized::add_reluc                    t        j                  | |      \  }}}}t        j                  | |      \  }}}}t        j                  | ||      }t        j                  | |      }t        j
                  | |||      S r   )r	   rX  r5   r|  rz  rV  r}  s          r<   r   r   M  so     221a8JAq!Q 221a8JAq!QZZ1a F[[F#F**1fhNNr=   zquantized::mulc                    t        j                  | |      \  }}}}t        j                  | |      \  }}}}t        j                  | ||      }t        j                  | |||      S r   )r	   rX  r5   mulrV  r}  s          r<   r+   r+   X  r  r=   zquantized::hardswishc                    t        j                  | |      \  }}}}t        j                  | |      }t        j                  | |||      S r   )r	   rX  r5   	hardswishrV  r8   r~  rs  rt  r   r/  s         r<   r%   r%   b  sE     221a8JAq!Qa#F**1fhNNr=   zquantized::sigmoidc                    t        j                  | |      \  }}}}t        j                  | |      }t        j                  | |||      S r   )r	   rX  r5   sigmoidrV  r  s         r<   r,   r,   k  sC     221a8JAq!Q^^Aq!F**1fhNNr=   zquantized::leaky_reluc                    t        j                  | |      \  }}}}t        j                  | |||      }t        j                  | |||      S r   )r	   rX  r5   
leaky_relurV  )r8   r~  negative_slopeinplacers  rt  r   r/  s           r<   r(   r(   t  sK     !221a8JAq!Qq!^W=F**1fhNNr=   zquantized::layer_normc           	         t        j                  | |      \  }}}}t        j                  | |||||d      }	t        j                  | |	||      S NF)r	   rX  r5   
layer_normrV  )
r8   r~  normalized_shaperv  rr  epsrs  rt  r   r/  s
             r<   r'   r'     sR     !221a8JAq!Qq!%5vtS%PF**1fhNNr=   zquantized::group_normc           	         t        j                  | |      \  }}}}t        j                  | |||||d      }	t        j                  | |	||      S r  )r	   rX  r5   
group_normrV  )
r8   r~  
num_groupsrv  rr  r  rs  rt  r   r/  s
             r<   r$   r$     sQ     !221a8JAq!Qq!ZsEJF**1fhNNr=   zquantized::instance_normc                    t        j                  | |      \  }}}}t        j                  | |||d d dd|d
      }	t        j                  | |	||      S )NFr[  )r	   rX  r5   instance_normrV  )
r8   rp  rv  rr  r  rs  rt  r   r   r/  s
             r<   r&   r&     s\     %66q'BNE1a!!	5&$dE3UF **1fhNNr=   zquantized::conv1d_reluc
           
     h   t        j                  | |      \  }
}}}t        j                  | |      \  }}}}t        j                  | |||      }t        j                  | |      \  }}}}t        j                  | |
||||||      }t        j
                  | |      }t        j                  | |||	      S r   )r	   rX  rn  r5   conv1drz  rV  r8   rp  rq  rr  r   r   r   groupsrs  rt  r   ru  r   rv  rw  rx  r/  s                    r<   r   r           /@@GLE;1!0!B!B1h!OFL!Q33At[,WF#55a@MD!Q]]1eVT67HfUF[[F#F**1fhNNr=   zquantized::conv2d_reluc
           
     h   t        j                  | |      \  }
}}}t        j                  | |      \  }}}}t        j                  | |||      }t        j                  | |      \  }}}}t        j                  | |
||||||      }t        j
                  | |      }t        j                  | |||	      S r   )r	   rX  rn  r5   conv2drz  rV  r  s                    r<   r   r     r  r=   zquantized::conv3d_reluc
           
     h   t        j                  | |      \  }
}}}t        j                  | |      \  }}}}t        j                  | |||      }t        j                  | |      \  }}}}t        j                  | |
||||||      }t        j
                  | |      }t        j                  | |||	      S r   )r	   rX  rn  r5   conv3drz  rV  r  s                    r<   r   r     r  r=   zquantized::conv1dc
           
     <   t        j                  | |      \  }
}}}t        j                  | |      \  }}}}t        j                  | |||      }t        j                  | |      \  }}}}t        j                  | |
||||||      }t        j
                  | |||	      S r   )r	   rX  rn  r5   r  rV  r  s                    r<   r   r           /@@GLE;1!0!B!B1h!OFL!Q33At[,WF#55a@MD!Q]]1eVT67HfUF**1fhNNr=   zquantized::conv2dc
           
     <   t        j                  | |      \  }
}}}t        j                  | |      \  }}}}t        j                  | |||      }t        j                  | |      \  }}}}t        j                  | |
||||||      }t        j
                  | |||	      S r   )r	   rX  rn  r5   r  rV  r  s                    r<   r   r     r  r=   zquantized::conv3dc
           
     <   t        j                  | |      \  }
}}}t        j                  | |      \  }}}}t        j                  | |||      }t        j                  | |      \  }}}}t        j                  | |
||||||      }t        j
                  | |||	      S r   )r	   rX  rn  r5   r  rV  r  s                    r<   r    r    -  r  r=   zquantized::conv_transpose1dc                >   t        j                  | |      \  }}}}t        j                  | |      \  }}}}t        j                  | |||      }t        j                  | |      \  }}}}t        j                  | ||||||||	      }t        j
                  | ||	|
      S r   r	   rX  rn  r5   conv_transpose2drV  r8   rp  rq  rr  r   r   output_paddingr   r  rs  rt  r   ru  r   rv  rw  rx  r/  s                     r<   r!   r!   D        /@@GLE;1!0!B!B1h!OFL!Q33At[,WF#55a@MD!Q$$	5&$F **1fhNNr=   zquantized::conv_transpose2dc                >   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                >   t        j                  | |      \  }}}}t        j                  | |      \  }}}}t        j                  | |||      }t        j                  | |      \  }}}}t        j                  | ||||||||	      }t        j
                  | ||	|
      S r   )r	   rX  rn  r5   conv_transpose3drV  r  s                     r<   r#   r#   x  r  r=   zquantized::catc                    t        j                  |      }|D cg c]  }t        j                  | |      d    }} | j                  dg|d|i}t        j                  | |||      S c c}w )Nr   r
  r  )r	   _unpack_listrX  rX   rV  )	r8   q_inputsrh   rs  rt  unpacked_inputsr   dequantizedconcatenateds	            r<   r   r     sx     &228<ODS;@))!U3A6K  144;;;s;L**1lHmTT	s    A*)r8   r   r   )r8   r   r9   r   r}   r   r~   r   r   r   r   r   r   r   r   r   returnr   )r   r   r   Sequence[int] | intr   r  r   r  r   r  r  zAtuple[Sequence[int], Sequence[int], Sequence[int], Sequence[int]])r8   r   r9   r   r}   r   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  ztuple[_C.Value, Sequence[int]])r   strr   r   r   r   )
r   r   r   r  r   r  r   r  r  z2tuple[Sequence[int], Sequence[int], Sequence[int]])r8   r   r   ztorch._C.Valuer   $list | torch.Tensor | torch._C.Valuer   r  r   r  r   z+list | torch.Tensor | torch._C.Value | Noner4  )r8   r   r  r   rh   r   rs  r   rt  r   r  r   )K
__future__r   	functoolsr  r  typingr   rY   torch._C._onnxr   _onnxr>  
torch.onnxr   r   r   r	   r
   r5   torch.onnx._globalsr   torch.onnx._internalr   r   __all__partialonnx_symbolic_onnx_symbolicr   r   r7   rB   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<   <module>r     sR
   #  
           ( 8#L #""<#=#=RH 9 9 Cc*H +H %&5 '5( Cc62T 3 T Cc3V< = $$
$  $ 	$
 $ $ $ $ $P(3(3$(3  (3 !	(3
 "(3 G(3V5"5"
5"  5" 	5"
 5" 5" 5" 5" 5" 5" 5" $5"p +o++L!ERS +o++L!ERS +o++L!ERS #%%%%	
	 #%%%%	
	 #%%%%	
	*						T*\))$)  ) !	)
 8)@ +o++L!<= +o++L!<= +o++L!<=			@ +o++,@!YOP +o++,@!YOP +o++,@!YOP +o++,?HMN +o++,A1hOP  +o++,BAxPQ						0& %&66 '6, :>7;7;7; /7; 1	7;
 /7; 77;t  * C& '  / / %&Cc3S#sCHQ
Q
 I 'Q
h 78Cc34 ++ 5 9+\ W W  !A "A +,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" *+Cc3S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2 -.OO /O2 -.OO /O2  !Cc3/UUU 
U 	U
 U U 0 "Ur=   