
    Vh4                       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 erd dlmZ g d	Z ej6                  ej8                  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jN                  ddd       g!       ed" ejN                  d#d$d       g!       ed% ejN                  d&d'd       g!       ed( ejN                  d)dd*       g!       ed+ ejN                  d,d$d*       g!       ed- ejN                  d.d'd*       g!      dd/                                          Z(	 	 	 	 	 	 	 	 	 	 dd0Z) ed1 ejN                  d2d      g!       ed3 ejN                  d4d$      g!       ed5 ejN                  d6d'      g!      d7                      Z* ed8 ejN                  d9d'd:      g!       ed; ejN                  d<d=d:      g!       ed> ejN                  d?d@d:      g!       edA ejN                  dBd'dC      g!       edD ejN                  dEd=dC      g!       edF ejN                  dGd@dC      g!      dH                                           Z+ edI      	 	 ddJ       Z,	 d	 	 	 	 	 	 	 	 	 	 	 ddKZ- edL      ddM       Z. edN       ej>                  ddO      ddP              Z/ edQ      ddR       Z0 edS       ej>                  ddddddddd	      	 	 ddT              Z1 edU       ej>                  ddddd      	 	 d	 ddV              Z2 edW      ddX       Z3 edY      ddZ       Z4 ed[      dd\       Z5 ed]      dd^       Z6 ed_       ej>                  dd`d`d`      dda              Z7 edb      	 	 ddc       Z8 edd      	 	 dde       Z9 edf      ddg       Z: edh      ddi       Z; edj      ddk       Z< edl      ddm       Z= edn      ddo       Z> edp      	 	 ddq       Z? edr      	 	 dds       Z@ edt      	 	 ddu       ZA edv       ej>                  dddd`dd      	 	 ddw              ZB edx      	 	 ddy       ZC edz      	 	 dd{       ZD ed|      	 	 dd}       ZE ed~      	 	 dd       ZF ed      	 	 dd       ZG ed      	 	 dd       ZH ed      	 	 dd       ZI ed      	 	 dd       ZJ ed      	 	 dd       ZK ed       ej>                  dddd      	 	 	 	 	 	 	 	 	 	 	 	 dd              ZLy)    )annotationsN)TYPE_CHECKING)_C)
_constants_type_utilserrorssymbolic_helpersymbolic_opset9)GLOBALS)	jit_utilsregistration)Sequence)"
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       K/home/dcms/DCMS/lib/python3.12/site-packages/torch/onnx/symbolic_opset10.pyr   r   P   s6    
4yA~!!!T511!!T58488    vsc                V    |dk(  rt        | ||      S t        j                  | |||      S )Nfloor)_floor_divider6   r8   )r9   r:   r;   rounding_modes       r=   r8   r8   X   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_fpr6   r7   optorchtensorint64)r9   r:   r;   outr   zeronegativemod
fixup_maskonefixups              r=   rC   rC   `   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)r9   r:   dimrg   r]   s        r=   r/   r/   u   s     ''4	sSSr>   z
aten::topkc           	     :    t        j                  | ||||||      S )N)largestsortedr]   )r	   _topk_helper)r9   r:   kri   rk   rl   r]   s          r=   r0   r0   {   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	UnsqueezerH   r   rI   rK   MaxPool   outputsceil_mode_idilations_ikernel_shape_ipads_i	strides_iSqueezerY   rZ   r[   r\   )r9   r:   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.rt   rU      
isinstanceintr5   )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 )Nrp   rq   rr   rH   r   rI   rK   rs   rt   ru   )rv   rx   ry   r{   SlicerV   r|   r}   )r9   r:   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_pool1drU   F)return_indices)decoratezaten::max_pool2d
max_pool2drt   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?   isrd   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 )NrU   r   rt   )r   r   ranger   )r9   inputr   r   r   r   r   r~   r   r   r   rd   r   r   s               r=   symbolic_fnz_max_pool.<locals>.symbolic_fn9  s     2Pfgx2
.gtY 3a{"{"!&{!34A!a%4  'a	 	 5s   A')r9   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   rt   rU   r   )r   r   r   r   r~   r   r   s          r=   _adjust_attributes_of_avg_poolr   f  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   c           	     \    t        |||      \  }}	}
| j                  d|||||
|	      }|S )NAveragePool)rw   count_include_pad_iry   rz   r{   )r   rY   )r9   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_scalesrY   )	r9   r   output_sizer<   scalesalign_cornersri   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   ri   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_moderY   )	r9   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   rZ   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| |       )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rankr9   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 )NrU   r   rd   )r   r   rZ   r   r5   r	   _maybe_get_const)r   s    r=   get_const_valuez_slice.<locals>.get_const_value  sC    mdELL%9:=!Q&$Q''//sCCr>   r   rU   )r   r   r   )r   	INT64_MAXrY   )	r9   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   )r5   r   r   r	   _slice_helper)r9   r:   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  r5   r   r   )r9   r   r  s      r=   r   r   >  sT     ((	tc$i###$s4y0dSY r>   z
aten::fmodc                ,    | j                  d||d      S )NrO   rU   rP   )rY   )r9   r   r;   s      r=   r   r   K  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.'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   r6   select_is_none_reducesum_helperappend)r9   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   P  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   r1      z=Quantize range (0, 127) not supported, requires opset 13 Clip))r      ir2  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)r9   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IsInfr7  r8  )rY   r?  r@  DOUBLEr9   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   r6   isnan__not___or_)r9   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 )Nrd   rJ   r7  r8  )
r	   
_get_constrY   r   JitScalarType	onnx_typer?  r@  FLOATquantize_helper)r9   r   rD  rE  rJ   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 r4   )r	   dequantize_helperrK  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        rW   rH   rI   rK   r   )r	   rX   r   rT  
from_valuerJ   r6   rM  rY   rZ   r[   finfomaxlogical_andr   gt
LongTensorminlt)r9   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	   rY  requantize_bias_helperr6   r   rW  r9   q_inputq_weightbiasop_scaleop_zero_pointr   input_scaler   weightweight_scaleq_biasr0  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	   rY  ro  r6   r   relurW  rp  s                r=   r+   r+   8  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	   rY  r6   addrW  r9   xyrt  ru  r   r0  s          r=   r   r   G  _     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	   rY  r6   r}  r{  rW  r~  s          r=   r   r   Q  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	   rY  r6   mulrW  r~  s          r=   r,   r,   \  r  r>   zquantized::hardswishc                    t        j                  | |      \  }}}}t        j                  | |      }t        j                  | |||      S r   )r	   rY  r6   	hardswishrW  r9   r  rt  ru  r   r0  s         r=   r&   r&   f  sE     221a8JAq!Qa#F**1fhNNr>   zquantized::sigmoidc                    t        j                  | |      \  }}}}t        j                  | |      }t        j                  | |||      S r   )r	   rY  r6   sigmoidrW  r  s         r=   r-   r-   o  sC     221a8JAq!Q^^Aq!F**1fhNNr>   zquantized::leaky_reluc                    t        j                  | |      \  }}}}t        j                  | |||      }t        j                  | |||      S r   )r	   rY  r6   
leaky_relurW  )r9   r  negative_slopeinplacert  ru  r   r0  s           r=   r)   r)   x  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	   rY  r6   
layer_normrW  )
r9   r  normalized_shaperw  rs  epsrt  ru  r   r0  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	   rY  r6   
group_normrW  )
r9   r  
num_groupsrw  rs  r  rt  ru  r   r0  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	   rY  r6   instance_normrW  )
r9   rq  rw  rs  r  rt  ru  r   r   r0  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	   rY  ro  r6   conv1dr{  rW  r9   rq  rr  rs  r   r   r   groupsrt  ru  r   rv  r   rw  rx  ry  r0  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	   rY  ro  r6   conv2dr{  rW  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	   rY  ro  r6   conv3dr{  rW  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	   rY  ro  r6   r  rW  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	   rY  ro  r6   r  rW  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	   rY  ro  r6   r  rW  r  s                    r=   r!   r!   1  r  r>   zquantized::conv_transpose1dc                >   t        j                  | |      \  }}}}t        j                  | |      \  }}}}t        j                  | |||      }t        j                  | |      \  }}}}t        j                  | ||||||||	      }t        j
                  | ||	|
      S r   r	   rY  ro  r6   conv_transpose2drW  r9   rq  rr  rs  r   r   output_paddingr   r  rt  ru  r   rv  r   rw  rx  ry  r0  s                     r=   r"   r"   H        /@@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#   b  r  r>   zquantized::conv_transpose3dc                >   t        j                  | |      \  }}}}t        j                  | |      \  }}}}t        j                  | |||      }t        j                  | |      \  }}}}t        j                  | ||||||||	      }t        j
                  | ||	|
      S r   )r	   rY  ro  r6   conv_transpose3drW  r  s                     r=   r$   r$   |  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_listrY  rY   rW  )	r9   q_inputsri   rt  ru  unpacked_inputsr   dequantizedconcatenateds	            r=   r   r     sx     &228<ODS;@))!U3A6K  144;;;s;L**1lHmTT	s    A*)r9   r   r   )r9   r   r:   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]])r9   r   r:   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]])r9   r   r   ztorch._C.Valuer   $list | torch.Tensor | torch._C.Valuer   r  r   r  r   z+list | torch.Tensor | torch._C.Value | Noner5  )r9   r   r  r   ri   r   rt  r   ru  r   r  r   )M
__future__r   	functoolsr  r  typingr   rZ   torch._C._onnxr   _onnxr?  
torch.onnxr   r   r   r	   r
   r6   torch.onnx._globalsr   torch.onnx._internalr   r   collections.abcr   __all__partialonnx_symbolic_onnx_symbolicr   r   r8   rC   r/   r0   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     sZ
   #  
            ( 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>   