o
    D"ågò‘  ã                   @  sª  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	  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	d
Zedƒdãdd„ƒZe ddd¡dãdd„ƒZedƒdãdd„ƒZedƒe dddd¡dädãdd„ƒƒZ edƒe dddddd¡dädãdd„ƒƒZ!dåd+d,„Z"dæd4d5„Z#dçd:d;„Z$ed<ej%d=d>d?d@gdAedBej%dCdDd?d@gdAedEej%dFdGd?d@gdAedHej%dId>dJd@gdAedKej%dLdDdJd@gdAedMej%dNdGdJd@gdAdèdRdS„ƒƒƒƒƒƒZ&dédUdV„Z'edWe %dXd>¡gdAedYe %dZdD¡gdAed[e %d\dG¡gdAd]d^„ ƒƒƒZ(ed_e %d`dGda¡gdAedbe %dcddda¡gdAedee %dfdgda¡gdAedhe %didGdj¡gdAedke %dldddj¡gdAedme %dndgdj¡gdAdodp„ ƒƒƒƒƒƒZ)edqƒdãdrds„ƒZ*	dädêd|d}„Z+ed~ƒdãdd€„ƒZ,edƒe dd‚¡dãdƒd„„ƒƒZ-ed…ƒdãd†d‡„ƒZ.edˆƒe ddddddddd¡	dãd‰dŠ„ƒƒZ/ed‹ƒe ddddd¡	Œ	dëdãdŽd„ƒƒZ0edƒdãd‘d’„ƒZ1ed“ƒdãd”d•„ƒZ2ed–ƒdãd—d˜„ƒZ3ed™ƒdãdšd›„ƒZ4edœƒe dddd¡dãdždŸ„ƒƒZ5ed ƒdãd¡d¢„ƒZ6ed£ƒdãd¤d¥„ƒZ7ed¦ƒdãd§d¨„ƒZ8ed©ƒdãdªd«„ƒZ9ed¬ƒdãd­d®„ƒZ:ed¯ƒdãd°d±„ƒZ;ed²ƒdãd³d´„ƒZ<edµƒdãd¶d·„ƒZ=ed¸ƒdãd¹dº„ƒZ>ed»ƒdãd¼d½„ƒZ?ed¾ƒe dddddd¡dãd¿dÀ„ƒƒZ@edÁƒdãdÂdÃ„ƒZAedÄƒdãdÅdÆ„ƒZBedÇƒdãdÈdÉ„ƒZCedÊƒdãdËdÌ„ƒZDedÍƒdãdÎdÏ„ƒZEedÐƒdãdÑdÒ„ƒZFedÓƒdãdÔdÕ„ƒZGedÖƒdãd×dØ„ƒZHedÙƒdãdÚdÛ„ƒZIedÜƒe dddd¡dìdádâ„ƒƒ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                 G  s.   t |ƒdkrt | ||¡S t| ||g|¢R Ž S ©Nr   )ÚlenÚopset9Útrue_divideÚ_div_rounding_mode)r1   ÚselfÚotherÚargs© r;   ú]/mnt/skqttb/ctump_chatbot/chatbot/lib/python3.10/site-packages/torch/onnx/symbolic_opset10.pyr   L   s   r   ÚvÚsc                 C  s$   |dkr
t | ||ƒS t | |||¡S )NÚfloor)Ú_floor_divider5   r7   )r1   r8   r9   Úrounding_moder;   r;   r<   r7   T   s   r7   zaten::_floor_dividec                 C  sâ   t  |¡s
t  |¡rt | ||¡}|  d|¡S |  d||¡}| jdtjdtjdd}|  d|  d||¡|  d||¡¡}| jd	||dd
}|  d||  d|  d||¡¡¡}| jdtjdtjdd}	|  d||	¡}
|  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)r1   r8   r9   Úoutr   ÚzeroÚnegativeÚmodÚ
fixup_maskÚoneÚfixupr;   r;   r<   r@   \   s   " r@   z
aten::sortÚiÚnonec                 C  s   t j| ||||dS )N)Ú	decendingrY   )r   Ú_sort_helper)r1   r8   Údimrb   rY   r;   r;   r<   r-   q   s   r-   z
aten::topkc              	   C  s   t j| ||||||dS )N)ÚlargestÚsortedrY   )r   Ú_topk_helper)r1   r8   Úkrd   re   rf   rY   r;   r;   r<   r.   w   s   ÿr.   r8   ú_C.ValueÚkernel_shapeúSequence[int]ÚstridesÚpadsÚ	dilationsÚ	ceil_modeÚboolÚunbatched_rankÚintÚreturnc              
   C  s’   |   d|   d|¡¡}||kr!|   d|| j dtjdgtjdd¡}| j d|d	|||||d
\}	}
||krG|   d|	| j dtjdgtjdd¡}	|	S )NÚSizeÚShapeÚ	UnsqueezerD   r   rE   rG   ÚMaxPoolé   ©ÚoutputsÚceil_mode_iÚdilations_iÚkernel_shape_iÚpads_iÚ	strides_iÚSqueeze©rU   rV   rW   rX   )r1   r8   rj   rl   rm   rn   ro   rq   Ú	self_rankÚpool_resultÚ_r;   r;   r<   Ú_aten_max_pool_onnx   s0   
ý
øýr…   Úexpand_sizeÚkernel_sizeúSequence[int] | intÚstrideÚpaddingÚdilationúAtuple[Sequence[int], Sequence[int], Sequence[int], Sequence[int]]c                 C  sÂ   t |tƒr
|g|  }t |tƒr|g|  }n|}t |tƒr$|g|  d }n%t|ƒdkr1||  d }nt|ƒdkr<|d }nt|ƒdkrG|d }n|}t |tƒrT|g|  }n|sY|}n|}||||fS )ú:Adjust attributes of avg_pool to match ONNX specification.rx   rQ   é   ©Ú
isinstancerr   r4   )r†   r‡   r‰   rŠ   r‹   rj   rm   rl   r;   r;   r<   Ú_adjust_attributes_of_max_pool§   s(   
	





r‘   Ú
n_dims_oneÚn_dims_zeroÚn_dims_axesútuple[_C.Value, Sequence[int]]c              
   C  s"  |   d|   d|¡¡}||kr!|   d|| j dtjdgtjdd¡}| j d|d	|||||d
\}}| j d|d	|||d\}}| j dt |¡d}| j dt |	¡d}| j dt |
¡d}|   d||||¡}|   d||¡}||kr| j d|tjdgtjdd}| j d|tjdgtjdd}||fS )Nrt   ru   rv   rD   r   rE   rG   rw   rx   ry   )rz   r|   r}   r   ÚSlicerR   r€   r   )r1   r8   rj   rl   rm   rn   ro   rq   r’   r“   r”   r‚   rƒ   Úindicesr„   Úflatten_indicesÚendsÚstartsÚaxesÚdeltar;   r;   r<   Ú _aten_max_pool_with_indices_onnxÒ   sH   ý
ø

ú	ÿr   zaten::max_pool1dÚ
max_pool1drQ   F)Úreturn_indices)Údecoratezaten::max_pool2dÚ
max_pool2drx   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              	     s<   t  dddddd¡t  dddddd¡d‡ ‡fdd„ƒƒ}|S )NTFr=   Úisr`   r1   r2   Úinputri   r‡   rk   r‰   rŠ   úint | Sequence[int]r‹   ro   rp   c                   sp   t ˆ ||||ƒ\}}}	}
ˆr+t| ||||	|
|ˆ d dgˆ  dgˆ  dd„ tˆ ƒD ƒƒS t| ||||	|
|ˆ d ƒS )NrQ   r   c                 S  s   g | ]}d | ‘qS )rx   r;   )Ú.0r`   r;   r;   r<   Ú
<listcomp>P  s    z2_max_pool.<locals>.symbolic_fn.<locals>.<listcomp>)r‘   r   Úranger…   )r1   r©   r‡   r‰   rŠ   r‹   ro   rj   rl   rm   rn   ©r†   rŸ   r;   r<   Úsymbolic_fn5  s6   
ÿõøz_max_pool.<locals>.symbolic_fn)r1   r2   r©   ri   r‡   rk   r‰   rk   rŠ   rª   r‹   rk   ro   rp   ©r   Úquantized_argsÚ
parse_args)r¦   r†   rŸ   r¯   r;   r®   r<   Ú	_max_pool
  s   +'r³   ú2tuple[Sequence[int], Sequence[int], Sequence[int]]c                 C  sš   t |tƒr|g|  }n|}t |tƒr|g|  d }nt|ƒdkr'||  d }nt|ƒdkr2||  }n|d }t |tƒrA|g|  }n|sF|}n|}|||fS )r   rx   rQ   r   )r†   r‡   r‰   rŠ   rj   rm   rl   r;   r;   r<   Ú_adjust_attributes_of_avg_poolb  s    




rµ   zaten::avg_pool1dÚ
avg_pool1dzaten::avg_pool2dÚ
avg_pool2dzaten::avg_pool3dÚ
avg_pool3dc              
     sB   t  ddddddd¡t  ddddddd¡	 dd‡ fdd„ƒƒ}|S )NTFr=   r¨   r`   ra   r©   ri   r‡   rk   r‰   rŠ   rª   ro   rr   Úcount_include_padc              	     s0   t ˆ |||ƒ\}}	}
| jd|||||
|	d}|S )NÚAveragePool)r{   Úcount_include_pad_ir}   r~   r   )rµ   rU   )r1   r©   r‡   r‰   rŠ   ro   r¹   Údivisor_overriderj   rl   rm   Úresult©r†   r;   r<   r¯     s   
ÿù
z_avg_pool.<locals>.symbolic_fn©N)r©   ri   r‡   rk   r‰   rk   rŠ   rª   ro   rr   r¹   rr   r°   )r¦   r†   r¯   r;   r¾   r<   Ú	_avg_pool‚  s
   	ø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                   s"   t  ddd¡‡ ‡‡fdd„ƒ}|S )NTFc                   sb   t  | ˆ|¡\}}t  ˆ¡ t  |¡}|rt  ˆd|¡S |d u r(t  | ||ˆ ¡}| jd||ˆdS )Nzalign_corners == TrueÚResize©Úmode_s)r   Ú_get_interpolate_attributesÚ_interpolate_warningÚ_maybe_get_scalarÚ_unimplementedÚ_interpolate_size_to_scalesrU   )r1   r©   Úoutput_sizer:   ÚscalesÚalign_corners©rd   Úinterpolate_moder¦   r;   r<   r¯   Ç  s   ÿ

ÿz!_interpolate.<locals>.symbolic_fn)r   r±   )r¦   rd   r×   r¯   r;   rÖ   r<   Ú_interpolate®  s   rØ   zaten::__interpolatec           	      C  s*   t  | |||||¡\}}| jd|||dS )NrË   rÌ   )r   Ú _interpolate_get_scales_and_moderU   )	r1   r©   ÚsizeÚscale_factorÚmoderÕ   Úrecompute_scale_factorÚ	antialiasrÔ   r;   r;   r<   Ú__interpolateÙ  s   ÿrß   r©   útorch._C.Valuer›   ú$list | torch.Tensor | torch._C.Valuerš   r™   Ústepsú+list | torch.Tensor | torch._C.Value | Nonec                   s®   dd„ ‰d‡ ‡fdd„	}dd„ }||ƒdkr)||ƒt jkr)|d u s'||ƒdkr)|S ||ƒ}||dd	}||t jd	}|d u rGˆ  d
||||¡S ||dd	}ˆ  d
|||||¡S )Nc                 S  s:   | d u rdS t | tjjƒo|  ¡  ¡ dkot |  ¡ tjƒS )NTzprim::Constant)r   rV   r   ÚValueÚnodeÚkindÚtypeÚNoneType)Úvaluer;   r;   r<   Úis_none_valueò  s   ÿýz_slice.<locals>.is_none_valuec                   sz   ˆ| ƒr|d ur|g} t | ttjfƒrˆ jdt | ¡dS t | ¡}|dkr.t ˆ | dg¡S |dkr4| S t	 
d|› | ¡‚)NrD   rG   r   rQ   zRank must be 0 or 1, not )r   ÚlistrV   ÚTensorrU   rW   r   Ú_get_tensor_rankÚ_unsqueeze_helperr   ÚSymbolicValueError)Úlist_or_valueÚdefault_valueÚrank©r1   rê   r;   r<   Úto_slice_inputû  s   

ÿz_slice.<locals>.to_slice_inputc                 S  s4   t | ttjfƒrt| ƒdkr| d S d S t | d¡S )NrQ   r   r`   )r   rë   rV   rì   r4   r   Ú_maybe_get_const)rð   r;   r;   r<   Úget_const_value  s
   z_slice.<locals>.get_const_valuer   rQ   )rñ   r–   r¿   )r   Ú	INT64_MAXrU   )r1   r©   r›   rš   r™   râ   rô   rö   r;   ró   r<   Ú_sliceê  s   		rø   zaten::slicec                 G  sZ   t |ƒdkr|\}}}}nt |ƒdkr|\}}}dg}nt d|¡‚tj| |||||dS )NrÄ   rŽ   r   zUnknown aten::slice signature©r›   rš   r™   râ   )r4   r   rï   r   Ú_slice_helper)r1   r8   r:   ÚdimsÚstartÚendÚstepr;   r;   r<   r,   $  s   
úr,   z
aten::flipr¨   c              	   C  s8   t j| ||dgt|ƒ tj gt|ƒ dgt|ƒ dS )Néÿÿÿÿrù   )r   rú   r4   r   r÷   )r1   r©   rû   r;   r;   r<   r   :  s   úr   z
aten::fmodc                 C  s   | j d||ddS )NrK   rQ   rL   )rU   )r1   r©   r9   r;   r;   r<   r   G  s   r   zaten::embedding_bagc
                 C  s  |r
t jr
t d¡S |	d ur|	dkrtdƒ‚t d¡ t |d¡}
|
d urü|r.|
d }|}n|
}|| jdt	 
tjg¡dg}| jdg|¢R d	diŽ}g }t|ƒD ]™}t | t | |t	 
d¡t	 
|¡¡dg¡}t | t | |t	 
d¡t	 
|d ¡¡dg¡}| jdt	 
dg¡d}|  d
||||¡}|  d||¡}t |¡s´|  d
||||¡}t | |dg¡}|  d||¡}|dkrÃtj| |dgdd}n|dkrÒ| jd|dgdd}n
| jd|dgdd}t | |dg¡}| |¡ qP| jdg|¢R d	diŽ}|d d d fS t d¡S )Nz7embedding_bag with scale_grad_by_freq for training moder   zembedding_bag with padding_idxzžExport 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.'rQ   rD   rG   Ú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_sizerU   rV   rW   ÚsysÚmaxsizer­   rî   r5   ÚselectÚ_is_noneÚ_reducesum_helperÚappend)r1   Úembedding_matrixr—   ÚoffsetsÚscale_grad_by_freqrÜ   ÚsparseÚper_sample_weightsÚinclude_last_offsetÚpadding_idxÚoffsets_dim_0Ú
offset_lenÚoffsets_extendedÚlist_r`   Ústart_Úend_Úaxes_Úindices_rowÚ
embeddingsÚper_sample_weights_rowÚoutputr;   r;   r<   r   L  st   
ÿÿþýÿû

ÿÿ
ÿÿr   z%aten::fake_quantize_per_tensor_affineé€ÿÿÿé   c              	   C  sÀ   ||fdkrt  dddd|¡ ||fdvr"t d|› d|› d	|¡‚t  |¡}|d u r4t  dddd
|¡ | ¡ j}|dkrH| jd|tj	j
d}n
| jd|tj	jd}|  d|  d|||¡||¡S )N)r   r'  r   r/   é   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ÚdatarU   Ú_C_onnxÚTensorProtoDataTypeÚUINT8ÚINT8)r1   ÚinputsÚscaleÚ
zero_pointÚ	quant_minÚ	quant_maxr;   r;   r<   r   ¢  sH   ûÿÿý
û
ür   zaten::isinfc                 C  s   |   d| j d|tjjd¡S )NÚIsInfr,  r-  )rU   r4  r5  ÚDOUBLE©r1   r©   r;   r;   r<   r   Ò  s   r   zaten::isfinitec                 C  s,   t | |ƒ}t | |¡}t | t | ||¡¡S r¿   )r   r5   ÚisnanÚ__not_Ú__or_)r1   r©   Úinf_nodeÚnan_noder;   r;   r<   r   ×  s   
r   zaten::quantize_per_tensorc                 C  sL   t  |dd¡}| jd|t |¡ ¡ d}| jd|tjjd}t  	| |||¡S )Nr`   rF   r,  r-  )
r   Ú
_get_constrU   r   ÚJitScalarTypeÚ	onnx_typer4  r5  ÚFLOATÚquantize_helper)r1   r©   r9  r:  rF   r;   r;   r<   r   Þ  s   ÿr   zaten::dequantizec                 C  s   t  | |¡d S r3   ©r   Údequantize_helperr?  r;   r;   r<   r   é  s   r   zaten::nan_to_numÚfc                 C  s.  t  |¡s|S tj |¡ ¡ }|d u rd}t | |¡}|  d|| jdt	j
|g|dd|¡}t	 |¡}|d u r:|j}t | t| |ƒt | || jdt	 dg¡d¡¡}	|  d|	| jdt	j
|g|dd|¡}
|d u rl|j}t | t| |
ƒt | |
| jdt	 dg¡d¡¡}|  d|| jdt	j
|g|dd|
¡S )Nç        rS   rD   rE   rG   r   )r   rT   r   rF  Ú
from_valuerF   r5   r@  rU   rV   rW   ÚfinfoÚmaxÚlogical_andr   ÚgtÚ
LongTensorÚminÚlt)r1   r©   ÚnanÚposinfÚneginfÚinput_dtypeÚnan_condÚ
nan_resultrO  Úposinf_condÚnan_posinf_resultÚneginf_condr;   r;   r<   r   î  sR   
ü
	ýüÿýür   zquantized::linearc                 C  sl   t  | |¡\}}}}t  | |¡\}	}
}}t  | |||
¡}t  | |¡\}}}}t | ||	|¡}t  | |||¡S r¿   )r   rK  Úrequantize_bias_helperr5   rÈ   rI  ©r1   Úq_inputÚq_weightÚbiasÚop_scaleÚop_zero_pointr©   Úinput_scaler„   ÚweightÚweight_scaleÚq_biasr%  r;   r;   r<   r(   &  s   r(   zquantized::linear_reluc                 C  sx   t  | |¡\}}}}t  | |¡\}	}
}}t  | |||
¡}t  | |¡\}}}}t | ||	|¡}t | |¡}t  | |||¡S r¿   )r   rK  r_  r5   rÈ   ÚrelurI  r`  r;   r;   r<   r)   4  s   r)   zquantized::addc                 C  óF   t  | |¡\}}}}t  | |¡\}}}}t | ||¡}t  | |||¡S r¿   )r   rK  r5   ÚaddrI  ©r1   ÚxÚyrd  re  r„   r%  r;   r;   r<   r   C  ó   r   zquantized::add_reluc                 C  sR   t  | |¡\}}}}t  | |¡\}}}}t | ||¡}t | |¡}t  | |||¡S r¿   )r   rK  r5   rl  rj  rI  rm  r;   r;   r<   r   M  s
   r   zquantized::mulc                 C  rk  r¿   )r   rK  r5   ÚmulrI  rm  r;   r;   r<   r*   X  rp  r*   zquantized::hardswishc                 C  ó0   t  | |¡\}}}}t | |¡}t  | |||¡S r¿   )r   rK  r5   Ú	hardswishrI  ©r1   rn  rd  re  r„   r%  r;   r;   r<   r$   b  ó   r$   zquantized::sigmoidc                 C  rr  r¿   )r   rK  r5   ÚsigmoidrI  rt  r;   r;   r<   r+   k  ru  r+   zquantized::leaky_reluc                 C  s4   t  | |¡\}}}}t | |||¡}t  | |||¡S r¿   )r   rK  r5   Ú
leaky_relurI  )r1   rn  Únegative_slopeÚinplacerd  re  r„   r%  r;   r;   r<   r'   t  s   r'   zquantized::layer_normc           
   	   C  ó:   t  | |¡\}}}}t | |||||d¡}	t  | |	||¡S ©NF)r   rK  r5   Ú
layer_normrI  )
r1   rn  Únormalized_shaperg  rc  Úepsrd  re  r„   r%  r;   r;   r<   r&     ó   r&   zquantized::group_normc           
   	   C  rz  r{  )r   rK  r5   Ú
group_normrI  )
r1   rn  Ú
num_groupsrg  rc  r~  rd  re  r„   r%  r;   r;   r<   r#   ‘  r  r#   zquantized::instance_normc           
      C  s@   t  | |¡\}}}}t | |||d d dd|d¡
}	t  | |	||¡S )NFrM  )r   rK  r5   Úinstance_normrI  )
r1   ra  rg  rc  r~  rd  re  r©   r„   r%  r;   r;   r<   r%   £  s
   ÿr%   zquantized::conv1d_reluc
              
   C  ó€   t  | |¡\}
}}}t  | |¡\}}}}t  | |||¡}t  | |¡\}}}}t | |
||||||¡}t | |¡}t  | |||	¡S r¿   )r   rK  r_  r5   Úconv1drj  rI  ©r1   ra  rb  rc  r‰   rŠ   r‹   Úgroupsrd  re  r©   rf  r„   rg  rh  ri  r%  r;   r;   r<   r   ·  ó   r   zquantized::conv2d_reluc
              
   C  rƒ  r¿   )r   rK  r_  r5   Úconv2drj  rI  r…  r;   r;   r<   r   Ï  r‡  r   zquantized::conv3d_reluc
              
   C  rƒ  r¿   )r   rK  r_  r5   Úconv3drj  rI  r…  r;   r;   r<   r   ç  r‡  r   zquantized::conv1dc
              
   C  ót   t  | |¡\}
}}}t  | |¡\}}}}t  | |||¡}t  | |¡\}}}}t | |
||||||¡}t  | |||	¡S r¿   )r   rK  r_  r5   r„  rI  r…  r;   r;   r<   r   ÿ  ó   r   zquantized::conv2dc
              
   C  rŠ  r¿   )r   rK  r_  r5   rˆ  rI  r…  r;   r;   r<   r     r‹  r   zquantized::conv3dc
              
   C  rŠ  r¿   )r   rK  r_  r5   r‰  rI  r…  r;   r;   r<   r   -  r‹  r   zquantized::conv_transpose1dc                 C  óv   t  | |¡\}}}}t  | |¡\}}}}t  | |||¡}t  | |¡\}}}}t | ||||||||¡	}t  | ||	|
¡S r¿   ©r   rK  r_  r5   Úconv_transpose2drI  ©r1   ra  rb  rc  r‰   rŠ   Úoutput_paddingr‹   r†  rd  re  r©   rf  r„   rg  rh  ri  r%  r;   r;   r<   r    D  ó   ÿr    zquantized::conv_transpose2dc                 C  rŒ  r¿   r  r  r;   r;   r<   r!   ^  r‘  r!   zquantized::conv_transpose3dc                 C  rŒ  r¿   )r   rK  r_  r5   Úconv_transpose3drI  r  r;   r;   r<   r"   x  r‘  r"   zquantized::catÚq_inputsrd   rd  re  c                   sD   t  |¡}‡ fdd„|D ƒ}ˆ jdg|¢R d|iŽ}t  ˆ |||¡S )Nc                   s   g | ]
}t  ˆ |¡d  ‘qS )r   rJ  )r«   r©   ©r1   r;   r<   r¬   œ  s    ÿz!quantized_cat.<locals>.<listcomp>r   r  )r   Ú_unpack_listrU   rI  )r1   r“  rd   rd  re  Úunpacked_inputsÚdequantizedÚconcatenatedr;   r”  r<   r   ’  s   
	
ÿr   )r1   r2   r¿   )r1   r2   r8   ri   rj   rk   rl   rk   rm   rk   rn   rk   ro   rp   rq   rr   rs   ri   )r†   rr   r‡   rˆ   r‰   rˆ   rŠ   rˆ   r‹   rˆ   rs   rŒ   )r1   r2   r8   ri   rj   rk   rl   rk   rm   rk   rn   rk   ro   rp   rq   rr   r’   rk   r“   rk   r”   rk   rs   r•   )r¦   r§   r†   rr   rŸ   rp   )
r†   rr   r‡   rˆ   r‰   rˆ   rŠ   rˆ   rs   r´   )r1   r2   r©   rà   r›   rá   rš   rá   r™   rá   râ   rã   r*  )r1   r2   r“  ri   rd   rr   rd  ri   re  ri   rs   ri   )KÚ
__future__r   Ú	functoolsr  r  Útypingr   rV   Útorch._C._onnxr   Ú_onnxr4  Ú
torch.onnxr   r   r   r   r	   r5   Útorch.onnx._globalsr
   Útorch.onnx._internalr   r   Ú__all__ÚpartialÚonnx_symbolicÚ_onnx_symbolicr   r²   r7   r@   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;   r<   Ú<module>   sl  &

(
+8þþþýÿþ
ýÿþ
ýÿþ

. þþþ þþþþþþú:
Tú.
6	
	
