o
    ,’×i§•  ã                   @  s´  d dl mZ d dlZd dlZd dlZd dlmZmZmZm	Z	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mZ g d¢Zejejd	d
Z e dƒej!dãdd„ƒƒZ"e #ddd¡ej!dãdd„ƒƒZ$e dƒej!dãdd„ƒƒZ%e dƒe #dddd¡ej!dädãdd„ƒƒƒZ&e dƒe #dddddd¡ej!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ej!dèdRdS„ƒƒƒƒƒƒƒZ,dédUdV„Z-e dWe +dXd>¡gdAe dYe +dZdD¡gdAe d[e +d\dG¡gdAej!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ej!dodp„ ƒƒƒƒƒƒƒZ/e dqƒej!dãdrds„ƒƒZ0ej!	dädêd|d}„ƒZ1e d~ƒej!dãdd€„ƒƒZ2e dƒe #dd‚¡ej!dãdƒd„„ƒƒƒZ3e d…ƒej!dãd†d‡„ƒƒZ4e dˆƒe #ddddddddd¡	ej!dãd‰dŠ„ƒƒƒZ5e d‹ƒe #ddddd¡ej!	Œ	dëdãdŽd„ƒƒƒZ6e dƒej!dãd‘d’„ƒƒZ7e d“ƒej!dãd”d•„ƒƒZ8e d–ƒej!dãd—d˜„ƒƒZ9e d™ƒej!dãdšd›„ƒƒZ:e dœƒe #dddd¡ej!dãdždŸ„ƒƒƒZ;e d ƒej!dãd¡d¢„ƒƒZ<e d£ƒej!dãd¤d¥„ƒƒZ=e d¦ƒej!dãd§d¨„ƒƒZ>e d©ƒej!dãdªd«„ƒƒZ?e d¬ƒej!dãd­d®„ƒƒZ@e d¯ƒej!dãd°d±„ƒƒZAe d²ƒej!dãd³d´„ƒƒZBe dµƒej!dãd¶d·„ƒƒZCe d¸ƒej!dãd¹dº„ƒƒZDe d»ƒej!dãd¼d½„ƒƒZEe d¾ƒe #dddddd¡ej!dãd¿dÀ„ƒƒƒZFe dÁƒej!dãdÂdÃ„ƒƒZGe dÄƒej!dãdÅdÆ„ƒƒZHe dÇƒej!dãdÈdÉ„ƒƒZIe dÊƒej!dãdËdÌ„ƒƒZJe dÍƒej!dãdÎdÏ„ƒƒZKe dÐƒej!dãdÑdÒ„ƒƒZLe dÓƒej!dãdÔdÕ„ƒƒZMe dÖƒej!dãd×dØ„ƒƒZNe dÙƒej!dãdÚdÛ„ƒƒZOe dÜƒe #dddd¡ej!dìdádâ„ƒƒƒZPdS )íé    )ÚannotationsN)ÚListÚOptionalÚSequenceÚTupleÚUnion)Ú_C)Ú
_constantsÚ_type_utilsÚerrorsÚsymbolic_helperÚsymbolic_opset9)ÚGLOBALS)Ú	_beartypeÚ	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)r6   ÚselfÚotherÚargs© r@   úY/home/ubuntu/SoloSpeech/.venv/lib/python3.10/site-packages/torch/onnx/symbolic_opset10.pyr   J   s   r   ÚvÚsc                 C  s$   |dkr
t | ||ƒS t | |||¡S )NÚfloor)Ú_floor_divider:   r<   )r6   r=   r>   Úrounding_moder@   r@   rA   r<   S   s   r<   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_fpr:   r;   ÚopÚtorchÚtensorÚint64)r6   r=   r>   Úoutr   ÚzeroÚnegativeÚmodÚ
fixup_maskÚoneÚfixupr@   r@   rA   rE   \   s   " rE   z
aten::sortÚiÚnonec                 C  s   t j| ||||dS )N)Ú	decendingr^   )r   Ú_sort_helper)r6   r=   Údimrg   r^   r@   r@   rA   r2   r   s   r2   z
aten::topkc              	   C  s   t j| ||||||dS )N)ÚlargestÚsortedr^   )r   Ú_topk_helper)r6   r=   Úkri   rj   rk   r^   r@   r@   rA   r3   y   s   ÿr3   r=   ú_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Ú	UnsqueezerI   r   rJ   rL   ÚMaxPoolé   ©ÚoutputsÚceil_mode_iÚdilations_iÚkernel_shape_iÚpads_iÚ	strides_iÚSqueeze©rZ   r[   r\   r]   )r6   r=   ro   rq   rr   rs   rt   rv   Ú	self_rankÚpool_resultÚ_r@   r@   rA   Ú_aten_max_pool_onnx‚   s0   
ý
øýrŠ   Úexpand_sizeÚkernel_sizeúUnion[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.r}   rV   é   ©Ú
isinstancerw   r9   )r‹   rŒ   rŽ   r   r   ro   rr   rq   r@   r@   rA   Ú_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 )Nry   rz   r{   rI   r   rJ   rL   r|   r}   r~   )r   r   r‚   r„   ÚSlicerW   r…   r†   )r6   r=   ro   rq   rr   rs   rt   rv   r—   r˜   r™   r‡   rˆ   Úindicesr‰   Úflatten_indicesÚendsÚstartsÚaxesÚdeltar@   r@   rA   Ú _aten_max_pool_with_indices_onnxÕ   sH   ý
ø

ú	ÿr¢   zaten::max_pool1dÚ
max_pool1drV   F)Úreturn_indices)Údecoratezaten::max_pool2dÚ
max_pool2dr}   zaten::max_pool3dÚ
max_pool3dr“   zaten::max_pool1d_with_indicesÚmax_pool1d_with_indicesTzaten::max_pool2d_with_indicesÚmax_pool2d_with_indiceszaten::max_pool3d_with_indicesÚmax_pool3d_with_indicesÚnameÚstrr¤   c              	     s<   t  dddddd¡t  dddddd¡d‡ ‡fdd„ƒƒ}|S )NTFrB   Úisre   r6   r7   Úinputrn   rŒ   rp   rŽ   r   úUnion[int, Sequence[int]]r   rt   ru   c                   sp   t ˆ ||||ƒ\}}}	}
ˆr+t| ||||	|
|ˆ d dgˆ  dgˆ  dd„ tˆ ƒD ƒƒS t| ||||	|
|ˆ d ƒS )NrV   r   c                 S  s   g | ]}d | ‘qS )r}   r@   )Ú.0re   r@   r@   rA   Ú
<listcomp>T  s    z2_max_pool.<locals>.symbolic_fn.<locals>.<listcomp>)r–   r¢   ÚrangerŠ   )r6   r®   rŒ   rŽ   r   r   rt   ro   rq   rr   rs   ©r‹   r¤   r@   rA   Úsymbolic_fn9  s6   
ÿõøz_max_pool.<locals>.symbolic_fn)r6   r7   r®   rn   rŒ   rp   rŽ   rp   r   r¯   r   rp   rt   ru   )r   Úquantized_argsÚ
parse_args)r«   r‹   r¤   r´   r@   r³   rA   Ú	_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’   r}   rV   r”   )r‹   rŒ   rŽ   r   ro   rr   rq   r@   r@   rA   Ú_adjust_attributes_of_avg_poolf  s    




r¹   zaten::avg_pool1dÚ
avg_pool1dzaten::avg_pool2dÚ
avg_pool2dzaten::avg_pool3dÚ
avg_pool3dc              
     sH   t  ddddddd¡t  ddddddd¡tj	 dd‡ fdd„ƒƒƒ}|S )NTFrB   r­   re   rf   r®   rn   rŒ   rp   rŽ   r   r¯   rt   rw   Úcount_include_padc              	     s0   t ˆ |||ƒ\}}	}
| jd|||||
|	d}|S )NÚAveragePool)r€   Úcount_include_pad_ir‚   rƒ   r„   )r¹   rZ   )r6   r®   rŒ   rŽ   r   rt   r½   Údivisor_overridero   rq   rr   Úresult©r‹   r@   rA   r´   ”  s   
ÿù
z_avg_pool.<locals>.symbolic_fn©N)r®   rn   rŒ   rp   rŽ   rp   r   r¯   rt   rw   r½   rw   )r   rµ   r¶   r   Úbeartype)r«   r‹   r´   r@   rÂ   rA   Ú	_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¡tj‡ ‡‡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_scalesrZ   )r6   r®   Úoutput_sizer?   ÚscalesÚalign_corners©ri   Úinterpolate_moder«   r@   rA   r´   Î  s   ÿ

ÿz!_interpolate.<locals>.symbolic_fn)r   rµ   r   rÄ   )r«   ri   rÜ   r´   r@   rÛ   rA   Ú_interpolate´  s   rÝ   zaten::__interpolatec           	      C  s*   t  | |||||¡\}}| jd|||dS )NrÐ   rÑ   )r   Ú _interpolate_get_scales_and_moderZ   )	r6   r®   ÚsizeÚscale_factorÚmoderÚ   Úrecompute_scale_factorÚ	antialiasrÙ   r@   r@   rA   Ú__interpolateá  s   ÿrä   r®   útorch._C.Valuer    ú)Union[List, torch.Tensor, torch._C.Value]rŸ   rž   Ústepsú3Optional[Union[List, torch.Tensor, torch._C.Value]]c                   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•   r[   r   ÚValueÚnodeÚkindÚtypeÚNoneType)Úvaluer@   r@   rA   Ú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|› | ¡‚)NrI   rL   r   rV   zRank must be 0 or 1, not )r•   Úlistr[   ÚTensorrZ   r\   r   Ú_get_tensor_rankÚ_unsqueeze_helperr   ÚSymbolicValueError)Úlist_or_valueÚdefault_valueÚrank©r6   rï   r@   rA   Ú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 )NrV   r   re   )r•   rð   r[   rñ   r9   r   Ú_maybe_get_const)rõ   r@   r@   rA   Úget_const_value  s
   z_slice.<locals>.get_const_valuer   rV   )rö   r›   rÃ   )r	   Ú	INT64_MAXrZ   )r6   r®   r    rŸ   rž   rç   rù   rû   r@   rø   rA   Ú_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ç   )r9   r   rô   r   Ú_slice_helper)r6   r=   r?   ÚdimsÚstartÚendÚstepr@   r@   rA   r1   .  s   
úr1   z
aten::flipr­   c              	   C  s8   t j| ||dgt|ƒ tj gt|ƒ dgt|ƒ dS )Néÿÿÿÿrþ   )r   rÿ   r9   r	   rü   )r6   r®   r   r@   r@   rA   r   E  s   úr   z
aten::fmodc                 C  s   | j d||ddS )NrP   rV   rQ   )rZ   )r6   r®   r>   r@   r@   rA   r   S  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.'rV   rI   rL   Ú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_sizerZ   r[   r\   ÚsysÚmaxsizer²   ró   r:   ÚselectÚ_is_noneÚ_reducesum_helperÚappend)r6   Úembedding_matrixrœ   ÚoffsetsÚscale_grad_by_freqrá   ÚsparseÚper_sample_weightsÚinclude_last_offsetÚpadding_idxÚoffsets_dim_0Ú
offset_lenÚoffsets_extendedÚlist_re   Ústart_Úend_Úaxes_Úindices_rowÚ
embeddingsÚper_sample_weights_rowÚoutputr@   r@   rA   r   Y  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   r4   é   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ÚdatarZ   Ú_C_onnxÚTensorProtoDataTypeÚUINT8ÚINT8)r6   ÚinputsÚscaleÚ
zero_pointÚ	quant_minÚ	quant_maxr@   r@   rA   r   °  sH   ûÿÿý
û
ür   zaten::isinfc                 C  s   |   d| j d|tjjd¡S )NÚIsInfr1  r2  )rZ   r9  r:  ÚDOUBLE©r6   r®   r@   r@   rA   r   á  s   r   zaten::isfinitec                 C  s,   t | |ƒ}t | |¡}t | t | ||¡¡S rÃ   )r   r:   ÚisnanÚ__not_Ú__or_)r6   r®   Úinf_nodeÚnan_noder@   r@   rA   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 )Nre   rK   r1  r2  )
r   Ú
_get_constrZ   r
   ÚJitScalarTypeÚ	onnx_typer9  r:  ÚFLOATÚquantize_helper)r6   r®   r>  r?  rK   r@   r@   rA   r   ï  s   ÿr   zaten::dequantizec                 C  s   t  | |¡d S r8   ©r   Údequantize_helperrD  r@   r@   rA   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ç        rX   rI   rJ   rL   r   )r   rY   r
   rK  Ú
from_valuerK   r:   rE  rZ   r[   r\   ÚfinfoÚmaxÚlogical_andr   ÚgtÚ
LongTensorÚminÚlt)r6   r®   ÚnanÚposinfÚneginfÚinput_dtypeÚnan_condÚ
nan_resultrT  Úposinf_condÚnan_posinf_resultÚneginf_condr@   r@   rA   r     sR   
ü
	ýüÿýür   zquantized::linearc                 C  sl   t  | |¡\}}}}t  | |¡\}	}
}}t  | |||
¡}t  | |¡\}}}}t | ||	|¡}t  | |||¡S rÃ   )r   rP  Úrequantize_bias_helperr:   rÍ   rN  ©r6   Úq_inputÚq_weightÚbiasÚop_scaleÚop_zero_pointr®   Úinput_scaler‰   ÚweightÚweight_scaleÚq_biasr*  r@   r@   rA   r-   :  s   r-   zquantized::linear_reluc                 C  sx   t  | |¡\}}}}t  | |¡\}	}
}}t  | |||
¡}t  | |¡\}}}}t | ||	|¡}t | |¡}t  | |||¡S rÃ   )r   rP  rd  r:   rÍ   ÚrelurN  re  r@   r@   rA   r.   I  s   r.   zquantized::addc                 C  óF   t  | |¡\}}}}t  | |¡\}}}}t | ||¡}t  | |||¡S rÃ   )r   rP  r:   ÚaddrN  ©r6   ÚxÚyri  rj  r‰   r*  r@   r@   rA   r   Y  ó   r   zquantized::add_reluc                 C  sR   t  | |¡\}}}}t  | |¡\}}}}t | ||¡}t | |¡}t  | |||¡S rÃ   )r   rP  r:   rq  ro  rN  rr  r@   r@   rA   r   d  s
   r   zquantized::mulc                 C  rp  rÃ   )r   rP  r:   ÚmulrN  rr  r@   r@   rA   r/   p  ru  r/   zquantized::hardswishc                 C  ó0   t  | |¡\}}}}t | |¡}t  | |||¡S rÃ   )r   rP  r:   Ú	hardswishrN  ©r6   rs  ri  rj  r‰   r*  r@   r@   rA   r)   {  ó   r)   zquantized::sigmoidc                 C  rw  rÃ   )r   rP  r:   ÚsigmoidrN  ry  r@   r@   rA   r0   …  rz  r0   zquantized::leaky_reluc                 C  s4   t  | |¡\}}}}t | |||¡}t  | |||¡S rÃ   )r   rP  r:   Ú
leaky_relurN  )r6   rs  Únegative_slopeÚinplaceri  rj  r‰   r*  r@   r@   rA   r,     s   r,   zquantized::layer_normc           
   	   C  ó:   t  | |¡\}}}}t | |||||d¡}	t  | |	||¡S ©NF)r   rP  r:   Ú
layer_normrN  )
r6   rs  Únormalized_shaperl  rh  Úepsri  rj  r‰   r*  r@   r@   rA   r+   ›  ó   r+   zquantized::group_normc           
   	   C  r  r€  )r   rP  r:   Ú
group_normrN  )
r6   rs  Ú
num_groupsrl  rh  rƒ  ri  rj  r‰   r*  r@   r@   rA   r(   ®  r„  r(   zquantized::instance_normc           
      C  s@   t  | |¡\}}}}t | |||d d dd|d¡
}	t  | |	||¡S )NFrR  )r   rP  r:   Úinstance_normrN  )
r6   rf  rl  rh  rƒ  ri  rj  r®   r‰   r*  r@   r@   rA   r*   Á  s
   ÿr*   zquantized::conv1d_reluc
              
   C  ó€   t  | |¡\}
}}}t  | |¡\}}}}t  | |||¡}t  | |¡\}}}}t | |
||||||¡}t | |¡}t  | |||	¡S rÃ   )r   rP  rd  r:   Úconv1dro  rN  ©r6   rf  rg  rh  rŽ   r   r   Úgroupsri  rj  r®   rk  r‰   rl  rm  rn  r*  r@   r@   rA   r   Ö  ó   r   zquantized::conv2d_reluc
              
   C  rˆ  rÃ   )r   rP  rd  r:   Úconv2dro  rN  rŠ  r@   r@   rA   r    ï  rŒ  r    zquantized::conv3d_reluc
              
   C  rˆ  rÃ   )r   rP  rd  r:   Úconv3dro  rN  rŠ  r@   r@   rA   r!     rŒ  r!   zquantized::conv1dc
              
   C  ót   t  | |¡\}
}}}t  | |¡\}}}}t  | |||¡}t  | |¡\}}}}t | |
||||||¡}t  | |||	¡S rÃ   )r   rP  rd  r:   r‰  rN  rŠ  r@   r@   rA   r"   !  ó   r"   zquantized::conv2dc
              
   C  r  rÃ   )r   rP  rd  r:   r  rN  rŠ  r@   r@   rA   r#   9  r  r#   zquantized::conv3dc
              
   C  r  rÃ   )r   rP  rd  r:   rŽ  rN  rŠ  r@   r@   rA   r$   Q  r  r$   zquantized::conv_transpose1dc                 C  óv   t  | |¡\}}}}t  | |¡\}}}}t  | |||¡}t  | |¡\}}}}t | ||||||||¡	}t  | ||	|
¡S rÃ   ©r   rP  rd  r:   Úconv_transpose2drN  ©r6   rf  rg  rh  rŽ   r   Úoutput_paddingr   r‹  ri  rj  r®   rk  r‰   rl  rm  rn  r*  r@   r@   rA   r%   i  ó   ÿr%   zquantized::conv_transpose2dc                 C  r‘  rÃ   r’  r”  r@   r@   rA   r&   „  r–  r&   zquantized::conv_transpose3dc                 C  r‘  rÃ   )r   rP  rd  r:   Úconv_transpose3drN  r”  r@   r@   rA   r'   Ÿ  r–  r'   zquantized::catÚq_inputsri   ri  rj  c                   sD   t  |¡}‡ fdd„|D ƒ}ˆ jdg|¢R d|iŽ}t  ˆ |||¡S )Nc                   s   g | ]
}t  ˆ |¡d  ‘qS )r   rO  )r°   r®   ©r6   r@   rA   r±   Å  s    ÿz!quantized_cat.<locals>.<listcomp>r  r  )r   Ú_unpack_listrZ   rN  )r6   r˜  ri   ri  rj  Úunpacked_inputsÚdequantizedÚconcatenatedr@   r™  rA   r   º  s   


ÿr   )r6   r7   rÃ   )r6   r7   r=   rn   ro   rp   rq   rp   rr   rp   rs   rp   rt   ru   rv   rw   rx   rn   )r‹   rw   rŒ   r   rŽ   r   r   r   r   r   rx   r‘   )r6   r7   r=   rn   ro   rp   rq   rp   rr   rp   rs   rp   rt   ru   rv   rw   r—   rp   r˜   rp   r™   rp   rx   rš   )r«   r¬   r‹   rw   r¤   ru   )
r‹   rw   rŒ   r   rŽ   r   r   r   rx   r¸   )r6   r7   r®   rå   r    ræ   rŸ   ræ   rž   ræ   rç   rè   r/  )r6   r7   r˜  rn   ri   rw   ri  rn   rj  rn   rx   rn   )QÚ
__future__r   Ú	functoolsr  r  Útypingr   r   r   r   r   r[   Útorch._C._onnxr   Ú_onnxr9  Ú
torch.onnxr	   r
   r   r   r   r:   Útorch.onnx._globalsr   Útorch.onnx._internalr   r   r   Ú__all__ÚpartialÚonnx_symbolicÚ_onnx_symbolicrÄ   r   r¶   r<   rE   r2   r3   rŠ   r–   r¢   Ú_apply_paramsr·   r¹   rÅ   rÝ   rä   rý   r1   r   r   r   r   r   r   r   r   r   r-   r.   r   r   r/   r)   r0   r,   r+   r(   r*   r   r    r!   r"   r#   r$   r%   r&   r'   r   r@   r@   r@   rA   Ú<module>   s¾  
&

(
+8þþþýÿþ
ýÿþ
ýÿþ

. þþþ!þþþþþþú:
Tú.
6	
	
