
    IЦi"6                        % S SK r S SKJrJr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K0J1r1  / SQr2\-\Rf                  \,\Rh                  \Rj                  \#Rj                  \Rl                  \#Rl                  \Rn                  \#Rn                  \Rp                  \#Rp                  \Rr                  \#Rr                  \Rt                  \#Rt                  \Rv                  \#Rv                  \Rx                  \#Rx                  \Rz                  \#Rz                  \R|                  \#R|                  \R~                  \#R~                  \R                  \#R                  \R                  \#R                  0rB\\\4   \CS	'   0 \-\Rf                  _\,\Rh                  _\R                  \R                  _\R                  \R                  _\R                  \R                  _\Rl                  \Rl                  _\Rn                  \Rn                  _\Rp                  \Rp                  _\Rr                  \Rr                  _\Rt                  \Rt                  _\Rv                  \Rv                  _\R                  \R                  _\Rx                  \Rx                  _\Rz                  \Rz                  _\R                  \R                  _\R                  \R                  _\R                  \R                  _0 \R                  \R                  _\R                  \R                  _\R                  \R                  _\R                  \R                  _\R                  R                  R                  \Rj                  _\Rj                  \Rj                  _\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                  \Rl                  _\R                  \Rn                  _\R                  \Rp                  _\R                  \R                  _\R                  \R                  _\R                  \R                  _\R                  \R                  _\R                  \R                  _\R                  \R                  _\R                  \Rj                  _\Rj                  \Rj                  _\Rn                  \Rn                  _\Rp                  \Rp                  _Erg\\\4   \CS
'   \Rn                  \Rn                  \Rp                  \Rp                  \Rj                  \Rj                  \R                  R                  R                  \Rj                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  0rh\\\4   \CS'   \R|                  \ R|                  \Rj                  \ Rj                  \Rj                  \ Rj                  \R                  R                  R                  \ Rj                  \R                  \ R                  \R                  \ R                  \R~                  \ R~                  \R                  \ R                  \R                  \R                  \Rz                  \Rz                  \Rx                  \Rx                  0rj\\\4   \CS'   \R                  1rl\\   \CS'   \'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\\\\u4   \4   \CS'   \R                  \)\R                  \)\R                  \)\R                  \*0rz\\\4   \CS'   \Rj                  \R                  R(                  Rj                  0r|\\\4   \CS'   \Rj                  \R                  R(                  R.                  Rj                  0r}\\\4   \CS'   S\\   4S jr~S\\\4   4S jrS\\\4   4S jrS\\\4   4S jrS\\\4   4S jr  S*S\S\\\\4      S\S\4S jjr S+S\S\\\\4      S\4S jjrS\\\4   4S jrS\\\4   4S jrS\\\4   4S  jrS\\\4   4S! jrS\\   4S" jrS\\   4S# jrS\\\\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DictOptionalSet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    j/var/www/html/ai-image-ml/venv/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)r1   r2   r   r3   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)r1   r2   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)r1   r2   r   r3   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strr1   r2   )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
NrA   rB   )r   r   rC   rD   r1   r2   )r=   rG   rE   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)r1   r2   r   r3   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.
)r1   r2   r   r8   r7   r	   r9   r:   s    r.   r    r      s>    
 mm78G$11GBOO!OOGBLLNr/   c                      [         $ )z9Get module mapping for post training dynamic quantization)r   r3   r/   r.   r!   r!   *  s    00r/   c                      [         $ )z@Get module mapping for post training dynamic sparse quantization)r   r3   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'   r1   r2   )#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
)	rO   r   valuesr   r   rP   r'   r1   r2   ).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)r1   r2   r   r3   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   rC   rD   )rW   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   rC   r   rZ   s    r.   _get_special_act_post_processr]   a  s!     .11$V,d r/   c                 L    U R                   =(       a    [        U 5      [        ;   $ rV   )trainingtyper   r\   s    r.   _has_special_act_post_processra   m  s    ??QtF|/QQQr/   )NFrV   )r1   typingr   r   r   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.qatr8   torch.ao.nn.qat.dynamicnnqatdtorch.ao.nn.quantizedr6   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ConvTranspose3dr9   r7   GRUCellLSTMCellRNNCellr+   r   __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'   eluops	hardswishinstance_norm
layer_norm
leaky_reludropoutr   rD   HardsigmoidSigmoidSoftmaxTanhr   sparser   r   r   r   r   r   r   boolr   r   r   r    r!   r"   r#   r$   r%   r&   Moduler]   ra   r3   r/   r.   <module>r      s
    < <    # # * * . . 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/   