
    %Vji5                     `   U d dl Z d dlmZmZmZmZ d dlZd dlmc m	Z
 d dlmc m	c mZ d dlmc m	c mc mZ d dlmc m	c mc mZ d dlmc m	c mc mc mZ d dlmc m	c mZ d dlmc m	c mc mZ d dlmc m	c mZ d dlmc m	c mc mZ d dlmc m	c mc m Z! d dl"Zd dl#m	c m$Z% d dlm	Z	 d dl&m'Z'm(Z( d dl)m*Z*m+Z+ d dl,m-Z- d dl.m/Z/ g dZ0e+ej1        e*ej2        e	j3        e!j3        e	j4        e!j4        e	j5        e!j5        e	j6        e!j6        e	j7        e!j7        e	j8        e!j8        e	j9        e!j9        e	j:        e!j:        e	j;        e!j;        e	j<        e!j<        e	j=        e!j=        e	j>        e!j>        e	j?        e!j?        iZ@eAeef         eBd	<   i e+ej1        e*ej2        e	jC        ejC        e	jD        ejD        e	jE        ejE        e	j4        ej4        e	j5        ej5        e	j6        ej6        e	j7        ej7        e	j8        ej8        e	j9        ej9        e	jF        ejF        e	j:        ej:        e	j;        ej;        e	jG        ejG        e	jH        ejH        e	jI        ejI        i e	jJ        ejJ        e	jK        ejK        e	jL        ejL        e	jM        ejM        e	jN        jO        jP        ej3        e	j3        ej3        e	jQ        ejQ        e	jR        ejR        ejS        ejT        ejU        ejU        ejV        ejV        ejW        ejW        ejX        ejX        ejY        ejY        ejZ        ejZ        ej[        ej[        ej\        ej\        ej]        ej]        ej^        ej^        ej_        ej4        ej`        ej5        eja        ej6        ejb        ejW        ejc        ejX        ejd        ejY        ejX        ejX        ejY        ejY        ej\        ej\        eje        ej3        ej3        ej3        ej5        ej5        ej6        ej6        iZfeAeef         eBd
<   e	j5        ej5        e	j6        ej6        e	j3        ej3        e	jN        jO        jP        ej3        ej_        ej_        ej`        ej`        eja        eja        ejb        ejb        ejc        ejc        ejd        ejd        ejX        ejX        ejY        ejY        ej\        ej\        eje        eje        iZgeAeef         eBd<   e	j<        ej<        e	j3        ej3        ej3        ej3        e	jN        jO        jP        ej3        e	j?        ej?        e	jh        ejh        e	j=        ej=        e	j>        ej>        ej\        ej\        e	j;        ej;        e	j:        ej:        iZieAeef         eBd<   e	jj        hZkele         eBd<   e%jm        ejn        j        jm        e%jo        ejn        j        jo        e%jp        ejn        j        jp        e%jq        ejn        j        jq        e%jr        ejn        j        jr        e%js        ejn        j        js        iZteAeeeuf         ef         eBd<   e	jv        e'e	jw        e'e	jx        e'e	jy        e(iZzeAeef         eBd<   e	j3        e
j{        j        j3        iZ|eAeef         eBd<   e	j3        e
j{        j        j        j3        iZ}eAeef         eBd<   dele         fdZ~deAeef         fdZdeAeef         fdZdeAeef         fdZdeAeef         fdZ	 	 d+dedeeAeef                  dedefdZ	 d,dedeeAeef                  defdZdeAeef         fdZdeAeef         fd ZdeAeef         fd!ZdeAeef         fd"Zdele         fd#Zdele         fd$ZdeAeeeuf         ef         fd%Zd&eeeuf         defd'Zd(ej	        j        dee         fd)Zd(ej	        j        defd*ZdS )-    N)AnyCallableOptionalUnion)nn)+default_fixed_qparams_range_0to1_fake_quant.default_fixed_qparams_range_neg1to1_fake_quant)DeQuantStub	QuantStub)get_combined_dict)type_before_parametrizations).DEFAULT_REFERENCE_STATIC_QUANT_MODULE_MAPPINGS$DEFAULT_STATIC_QUANT_MODULE_MAPPINGSDEFAULT_QAT_MODULE_MAPPINGS%DEFAULT_DYNAMIC_QUANT_MODULE_MAPPINGS,DEFAULT_FLOAT_TO_QUANTIZED_OPERATOR_MAPPINGS"DEFAULT_MODULE_TO_ACT_POST_PROCESS+DEFAULT_STATIC_SPARSE_QUANT_MODULE_MAPPINGS,DEFAULT_DYNAMIC_SPARSE_QUANT_MODULE_MAPPINGSno_observer_set(get_default_static_quant_module_mappings2get_default_static_quant_reference_module_mappings*get_embedding_static_quant_module_mappings/get_default_static_sparse_quant_module_mappingsget_static_quant_module_classget_dynamic_quant_module_classget_default_qat_module_mappings!get_embedding_qat_module_mappings)get_default_dynamic_quant_module_mappings0get_default_dynamic_sparse_quant_module_mappings$get_default_qconfig_propagation_list&get_default_compare_output_module_list0get_default_float_to_quantized_operator_mappingsget_quantized_operatorr   r   r   r   _INCLUDE_QCONFIG_PROPAGATE_LISTr   r   r   r   returnc                  J    t           j        j        t           j        j        h} | S )z8These modules cannot have observers inserted by default.)r   quantizableLSTMMultiheadAttention)no_observerss    e/root/voice-cloning/.venv/lib/python3.11/site-packages/torch/ao/quantization/quantization_mappings.pyr   r      s    N')JKL    c                  4    t          j        t                    S )z8Get module mapping for post training static quantization)copydeepcopyr    r-   r,   r   r      s    ==>>>r-   c                  4    t          j        t                    S )zBGet reference module mapping for post training static quantization)r/   r0   r   r1   r-   r,   r   r      s    =GHHHr-   c                      t          j        t                    } t          j        | t
          j        <   t          j        | t
          j        <   | S )z7Get module mapping, including mapping for embedding QAT)r/   r0   r   nnqEmbeddingBagnnqat	Embeddingmappings    r,   r   r      s5    m@AAG"%"2GE"}GEONr-   c                  4    t          j        t                    S )z?Get module mapping for post training static sparse quantization)r/   r0   r   r1   r-   r,   r   r      s    =DEEEr-   Ffloat_module_classadditional_static_quant_mappingis_referencec                     |i }t          |rt          nt          |          }|                    | d          }|J dt	          |            dz               t          j        |          S )zen Get the statically quantized module class corresponding to
    the floating point module class
    NFloating point module class 5 does not have a corresponding quantized module class)r   r   r   getstrr/   r0   )r;   r<   r=   all_mappingsstatic_quant_module_classs        r,   r   r      s     '.*,'$	2661'	 L !- 0 01CT J J$00@s+='>'>@@
A	B 100 =2333r-    additional_dynamic_quant_mappingc                     |i }t          t          |          }|                    | d          }|J dt          |            dz               t	          j        |          S )zfn Get the dynamically quantized module class corresponding to
    the floating point module class
    Nr?   r@   )r   r   rA   rB   r/   r0   )r;   rE   rC   dynamic_quant_module_classs       r,   r   r     s     (/+-($-/O L ".!1!12Dd!K!K%11@s+='>'>@@
A	B 211 =3444r-   c                  4    t          j        t                    S )z:Get default module mapping for quantization aware training)r/   r0   r   r1   r-   r,   r   r     s    =4555r-   c                      t          j        t                    } t          j        | t
          j        <   t          j        | t
          j        <   | S )zGet module mapping for quantization aware training
    This is includes default values in addition to
    enabling qat for embeddings.
    )r/   r0   r   r6   r5   r   r7   r8   s    r,   r   r     s6    
 m788G$1GBO!OGBLNr-   c                      t           S )z9Get module mapping for post training dynamic quantization)r   r1   r-   r,   r   r   )  s    00r-   c                      t           S )z@Get module mapping for post training dynamic sparse quantization)r   r1   r-   r,   r    r    .  s    77r-   c                  "   t          t                                                    t          t                                                    z  t          t                                                    z  t
          z  } t          j        |           S )z_Get the default list of module types that we'll attach qconfig
    attribute to in prepare
    )setr   keysr   r   r%   r/   r0   )#QCONFIG_PROPAGATE_MODULE_CLASS_LISTs    r,   r!   r!   3  sx    
 	0557788
)..00
1
1	2
388::
;
;	< *	* ( =<===r-   c                     t          t                                                    t          t                                                    z  t          t                                                    z  t          t                                                    z  t          t                                                    z  t          t                                                    z  t          z  } t          j        |           S )zSGet list of module class types that we will record output
    in numeric suite
    )	rM   r   valuesr   r   rN   r%   r/   r0   ).NUMERIC_SUITE_COMPARE_MODEL_OUTPUT_MODULE_LISTs    r,   r"   r"   @  s    
 	07799::
)0022
3
3	4
3::<<
=
=	> 27799
:
:	; )..00
1
1		2
 388::
;
;	< *	* 3 =GHHHr-   c                  4    t          j        t                    S N)r/   r0   r   r1   r-   r,   r#   r#   P  s     =EFFFr-   float_opc                 v    t                               | d          }|J dt          |            d            |S )z>Get the quantized operator corresponding to the float operatorNz	Operator z) does not have corresponding quantized op)r   rA   rB   )rU   quantized_ops     r,   r$   r$   W  sG    ?CCHdSSL##LCMMLLL $## r-   modulec                 R    t                               t          |           d          S )zGet the special activation post process for `module`, this has
    higher priority than the activation post process in `qconfig`
    e.g.
    input: torch.nn.Sigmoid
    output: default_affine_fixed_qparam_fake_quant
    N)r   rA   r   rX   s    r,   _get_special_act_post_processr[   `  s)     .11$V,,d  r-   c                 <    | j         ot          |           t          v S rT   )trainingtyper   rZ   s    r,   _has_special_act_post_processr_   l  s    ?QtF||/QQQr-   )NFrT   )r/   typingr   r   r   r   torchtorch.ao.nnaor   ao_nntorch.ao.nn.intrinsic	intrinsicnnitorch.ao.nn.intrinsic.qatqatnniqattorch.ao.nn.intrinsic.quantized	quantizednniq'torch.ao.nn.intrinsic.quantized.dynamicdynamicnniqdtorch.ao.nn.qatr6   torch.ao.nn.qat.dynamicnnqatdtorch.ao.nn.quantizedr4   torch.ao.nn.quantized.dynamicnnqdtorch.ao.nn.quantized.reference	referencennqrtorch.ao.nn.sparsetorch.nn.functional
functionalF#torch.ao.quantization.fake_quantizer   r	   torch.ao.quantization.stubsr
   r   torch.ao.quantization.utilsr   torch.nn.utils.parametrizer   __all__Quantize
DeQuantizeLinearConv1dConv2dConv3dConvTranspose1dConvTranspose2dConvTranspose3dr7   r5   GRUCellLSTMCellRNNCellr)   r   dict__annotations__BatchNorm2dBatchNorm3dDropoutELU	GroupNorm	HardswishInstanceNorm1dInstanceNorm2dInstanceNorm3d	LayerNorm	LeakyReLUmoduleslinearNonDynamicallyQuantizableLinearReLU6PReLUFloatFunctionalQFunctionalBNReLU2dBNReLU3d
ConvReLU1d
ConvReLU2d
ConvReLU3d	ConvAdd2dConvAddReLU2d
LinearReLULinearLeakyReLU
LinearTanhConvBn1dConvBn2dConvBn3dConvBnReLU1dConvBnReLU2dConvBnReLU3d
LinearBn1dr   r   GRUr   
Sequentialr%   rM   eluops	hardswishinstance_norm
layer_norm
leaky_reludropoutr   rB   HardsigmoidSigmoidSoftmaxTanhr   sparser   r   r   r   r   r   r   boolr   r   r   r   r   r    r!   r"   r#   r$   Moduler[   r_   r1   r-   r,   <module>r      s    1 1 1 1 1 1 1 1 1 1 1 1           # # # # # # # # # # # # * * * * * * * * * * * * * * * . . . . . . . . . . . . . . . 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7             ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( # # # # # # # # # # # # , , , , , , , , , , , , , , , . . . . . . . . . . . . . . .                           ? > > > > > > > 9 9 9 9 9 9 C C C C C C  8 s|It{It{It{It{,,,L$.OT&JKJGTYG .Xs]0C   &5=s|5=5= NCO5= NCO	5=
 J5= Isz5= Isz5= Isz5= +5= +5= +5= FCG5= L#-5= OS%5= L#-5=  L#-!5=" s)#5= 5=$ s)%5=& s)'5=( L#-)5=* L#-+5=, J5sz-5=. Isz/5=0 Hci15=2 Hci35=6 75=: L$-;5=< L$-=5=> NDO?5=@ NDOA5=B NDOC5=D M4>E5=F t)G5=H NDOI5= 5=J -NDO
OSZ
OSZ
OSZ



t
t
t
sz	L#*	L#*	L#*i5= 5= $d8S=&9 5 5 5r Iu|Iu|Iu|J5u|L&/L&/L&/f)f)f)NF%NF%NF%NF%4 T(C-0   ( JIt{
M4;J5t{GTYFDHKJNE$OS%L#-> %tHcM':   0 M2 X    E59"K$.OUY(6L%)%0L%)%0Iuy"*V ,d533G3Q.R    N?J;J;G;	@ "D8);$<    Iu|%,D +T(C--@    Iu|%-4E ,d8S=.A   
S    ?$x}2E ? ? ? ?
ID3<O I I I I
D34G    Fhm9L F F F F FJ4 4 4%-d8S=.A%B4 4 		4 4 4 44 GK5 5 5&.tHcM/B&C5 	5 5 5 5(6hm)< 6 6 6 6
4#+>    14#3F 1 1 1 1
8$x}:M 8 8 8 8

>c(m 
> 
> 
> 
>IH I I I I G$	(C-("; G G G GU8S=%9 h    	%(/ 	hx>P 	 	 	 	R%(/ Rd R R R R R Rr-   