
    [Th6                        % S SK r S SKJrJrJrJr  S SKrS SKJs  J	r
  S SKJs  J	s  Jr  S SKJs  J	s  Js  Jr  S SKJs  J	s  Js  Jr  S SKJs  J	s  Js  Js  Jr  S SKJs  J	s  Jr  S SKJs  J	s  Js  Jr  S SKJs  J	s  Jr  S SKJs  J	s  Js  Jr  S SKJs  J	s  Js  J r!  S SK"rS SK#J	s  J$r%  S SKJ	r	  S SK&J'r'J(r(  S SK)J*r*J+r+  S SK,J-r-  S SK.J/r/  / SQr0\+\Rb                  \*\Rd                  \	Rf                  \!Rf                  \	Rh                  \!Rh                  \	Rj                  \!Rj                  \	Rl                  \!Rl                  \	Rn                  \!Rn                  \	Rp                  \!Rp                  \	Rr                  \!Rr                  \	Rt                  \!Rt                  \	Rv                  \!Rv                  \	Rx                  \!Rx                  \	Rz                  \!Rz                  \	R|                  \!R|                  \	R~                  \!R~                  0r@\A\\4   \BS	'   0 \+\Rb                  _\*\Rd                  _\	R                  \R                  _\	R                  \R                  _\	R                  \R                  _\	Rh                  \Rh                  _\	Rj                  \Rj                  _\	Rl                  \Rl                  _\	Rn                  \Rn                  _\	Rp                  \Rp                  _\	Rr                  \Rr                  _\	R                  \R                  _\	Rt                  \Rt                  _\	Rv                  \Rv                  _\	R                  \R                  _\	R                  \R                  _\	R                  \R                  _0 \	R                  \R                  _\	R                  \R                  _\	R                  \R                  _\	R                  \R                  _\	R                  R                  R                  \Rf                  _\	Rf                  \Rf                  _\	R                  \R                  _\	R                  \R                  _\	R                  \R                  _\R                  \R                  _\R                  \R                  _\R                  \R                  _\R                  \R                  _\R                  \R                  _\R                  \R                  _\R                  \R                  _\R                  \R                  _E0 \R                  \R                  _\R                  \R                  _\R                  \R                  _\R                  \Rh                  _\R                  \Rj                  _\R                  \Rl                  _\R                  \R                  _\R                  \R                  _\R                  \R                  _\R                  \R                  _\R                  \R                  _\R                  \R                  _\R                  \Rf                  _\Rf                  \Rf                  _\Rj                  \Rj                  _\Rl                  \Rl                  _Erf\A\\4   \BS
'   \	Rj                  \Rj                  \	Rl                  \Rl                  \	Rf                  \Rf                  \	R                  R                  R                  \Rf                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  0rg\A\\4   \BS'   \	Rx                  \Rx                  \	Rf                  \Rf                  \Rf                  \Rf                  \	R                  R                  R                  \Rf                  \	R~                  \R~                  \	R                  \R                  \	Rz                  \Rz                  \	R|                  \R|                  \R                  \R                  \	Rv                  \Rv                  \	Rt                  \Rt                  0ri\A\\4   \BS'   \	R                  1rk\l\   \BS'   \%R                  \R                  R$                  R                  \%R                  \R                  R$                  R                  \%R                  \R                  R$                  R                  \%R                  \R                  R$                  R                  \%R                  \R                  R$                  R                  \%R                  \R                  R$                  R                  0rt\A\\\u4   \4   \BS'   \	R                  \'\	R                  \'\	R                  \'\	R                  \(0rz\A\\4   \BS'   \	Rf                  \
R                  R$                  Rf                  0r|\A\\4   \BS'   \	Rf                  \
R                  R$                  R*                  Rf                  0r}\A\\4   \BS'   S\l\   4S jr~S\A\\4   4S jrS\A\\4   4S jrS\A\\4   4S jrS\A\\4   4S jr  S*S\S\\A\\4      S\S\4S jjr S+S\S\\A\\4      S\4S jjrS\A\\4   4S jrS\A\\4   4S jrS\A\\4   4S  jrS\A\\4   4S! jrS\l\   4S" jrS\l\   4S# jrS\A\\\u4   \4   4S$ jrS%\\\u4   S\4S& jrS'\R                  GR                  S\\   4S( jrS'\R                  GR                  S\4S) jrg),    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                  n    [         R                  R                  [         R                  R                  1n U $ )z8These modules cannot have observers inserted by default.)r   quantizableLSTMMultiheadAttention)no_observerss    c/var/www/auris/envauris/lib/python3.13/site-packages/torch/ao/quantization/quantization_mappings.pyr   r      s&    NN'')J)JKL    c                  6    [         R                  " [        5      $ )z8Get module mapping for post training static quantization)copydeepcopyr    r-   r,   r   r      s    ===>>r-   c                  6    [         R                  " [        5      $ )zBGet reference module mapping for post training static quantization)r/   r0   r   r1   r-   r,   r   r      s    ==GHHr-   c                      [         R                  " [        5      n [        R                  U [
        R                  '   [        R                  U [
        R                  '   U $ )z7Get module mapping, including mapping for embedding QAT)r/   r0   r   nnqEmbeddingBagnnqat	Embeddingmappings    r,   r   r      s>    mm@AG"%"2"2GE"}}GEOONr-   c                  6    [         R                  " [        5      $ )z?Get module mapping for post training static sparse quantization)r/   r0   r   r1   r-   r,   r   r      s    ==DEEr-   float_module_classadditional_static_quant_mappingis_referencec                     Uc  0 n[        U(       a  [        O[        U5      nUR                  U S5      nUc   S[	        U 5       3S-   5       e[
        R                  " U5      $ )z]n 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}     '.*,'$ 	71'	L !- 0 01CT J$0 
&s+='>&?@
A	B0 ==233r-    additional_dynamic_quant_mappingc                     Uc  0 n[        [        U5      nUR                  U S5      nUc   S[        U 5       3S-   5       e[        R
                  " U5      $ )z^n 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     su     (/+-($-/OL ".!1!12Dd!K%1 
&s+='>&?@
A	B1 ==344r-   c                  6    [         R                  " [        5      $ )z:Get default module mapping for quantization aware training)r/   r0   r   r1   r-   r,   r   r     s    ==455r-   c                      [         R                  " [        5      n [        R                  U [
        R                  '   [        R                  U [
        R                  '   U $ )zGet 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     s>    
 mm78G$11GBOO!OOGBLLNr-   c                      [         $ )z9Get module mapping for post training dynamic quantization)r   r1   r-   r,   r   r   *  s    00r-   c                      [         $ )z@Get module mapping for post training dynamic sparse quantization)r   r1   r-   r,   r    r    /  s    77r-   c                      [        [        R                  5       5      [        [        R                  5       5      -  [        [        R                  5       5      -  [
        -  n [        R                  " U 5      $ )zWGet 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!   4  se    
 	05578
)..0
1	2
388:
;	< *	* ( ==<==r-   c                     [        [        R                  5       5      [        [        R                  5       5      -  [        [        R                  5       5      -  [        [        R                  5       5      -  [        [        R                  5       5      -  [        [        R                  5       5      -  [        -  n [        R                  " U 5      $ )zKGet 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"   A  s    
 	0779:
)002
3	4
3::<
=	> 2779
:	; )..0
1		2
 388:
;	< *	* 3 ==GHHr-   c                  6    [         R                  " [        5      $ N)r/   r0   r   r1   r-   r,   r#   r#   Q  s     ==EFFr-   float_opc                 `    [         R                  U S5      nUc   S[        U 5       S35       eU$ )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$   X  s@    ?CCHdSL L	3x=/!JKL r-   modulec                 @    [         R                  [        U 5      S5      $ )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[   a  s!     .11$V,d r-   c                 L    U R                   =(       a    [        U 5      [        ;   $ rT   )trainingtyper   rZ   s    r,   _has_special_act_post_processr_   m  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    # # * * . . 7 7 7   ( ( # # , , . .     ? 9 C8 s||IIt{{IIt{{IIt{{IIt{{,,,,,,LL$..OOT&&JJKKJJGGTYYG .Xs]0C &6=s||6=6= NNCOO6= NNCOO	6=
 JJ6= IIszz6= IIszz6= IIszz6= ++6= ++6= ++6= FFCGG6= LL#--6= OOS%%6= LL#--6=  LL#--!6=" s))#6=$ s))%6=& s))'6=( LL#--)6=* LL#--+6=, JJ55szz-6=. IIszz/6=0 HHcii16=2 JJ36=4 HHcii56=8 96=< LL$--=6=> LL$--?6=@ NNDOOA6=B NNDOOC6=D NNDOOE6=F MM4>>G6=H t))I6=J NNDOOK6=L --M6=N NNDOOO6=P OOSZZQ6=R OOSZZS6=T OOSZZU6=V W6=X Y6=Z [6=\ t]6=^ t_6=` ta6=b szzc6=f 
LL#**g6=h 
LL#**i6=j 
LL#**k6= $d8S=&9 6t IIu||IIu||IIu||JJ55u||LL&//LL&//LL&//f))f))f))NNF%%NNF%%NNF%%NNF%%4 T(C-0 ( JJIIt{{
MM4;;JJ55t{{GGTYYFFDHHKKJJNNE$$OOS%%LL#--> %tHcM': 0 MM2 X  EE599""KK$$..OOUYY((66LL%))%%00LL%))%%00IIuyy""**V ,d533G3Q.R  NN?JJ;JJ;GG;	@ "D8);$<  IIu||%%,,D +T(C--@  IIu||%%--44E ,d8S=.A 
S ?$x}2E ?
ID3<O I
D34G Fhm9L F FJ4 4%-d8S=.A%B4 4 		44 GK5 5&.tHcM/B&C5 	5(6hm)< 6
4#+> 14#3F 1
8$x}:M 8

>c(m 
>IH I Gx}	x	'(GU8S=%9 h 	%((// 	hx>P 	R%((// Rd Rr-   