ó
    Eñi§  ã                   óø   • S SK r S SKJr  S SKJrJr  S SKJr  S SKrS SKJ	r	  SSK
7  SSKJrJr  SSK7  SSK7  SSK7  SSK7  SSK7  SSK7  SSK7  SSK7  SSK7  \" S	\\-  5      r/ S
QrS r " S S\5      rg)é    N)ÚCallable)ÚOptionalÚUnion)ÚTypeAliasType)ÚTensoré   )Ú*)Úfuse_modulesÚfuse_modules_qatÚObserverOrFakeQuantize)€ÚDeQuantStubÚFakeQuantizeÚFakeQuantizeBaseÚFixedQParamsFakeQuantizeÚFixedQParamsObserverÚFusedMovingAvgObsFakeQuantizeÚHistogramObserverÚMatchAllNodeÚMinMaxObserverÚMovingAverageMinMaxObserverÚ%MovingAveragePerChannelMinMaxObserverÚNoopObserverÚObserverBaser   ÚPatternÚPerChannelMinMaxObserverÚPlaceholderObserverÚQConfigÚ
QConfigAnyÚQConfigDynamicÚQConfigMappingÚ	QuantStubÚ	QuantTypeÚQuantWrapperÚRecordingObserverÚReuseInputObserverÚUniformQuantizationObserverBaseÚadd_quant_dequantÚconvertÚconvert_dynamic_jitÚconvert_jitÚ'default_affine_fixed_qparams_fake_quantÚ%default_affine_fixed_qparams_observerÚdefault_debug_observerÚdefault_dynamic_fake_quantÚdefault_dynamic_quant_observerÚdefault_embedding_fake_quantÚ!default_embedding_fake_quant_4bitÚdefault_eval_fnÚdefault_fake_quantÚ+default_fixed_qparams_range_0to1_fake_quantÚ)default_fixed_qparams_range_0to1_observerÚ.default_fixed_qparams_range_neg1to1_fake_quantÚ,default_fixed_qparams_range_neg1to1_observerÚdefault_float_qparams_observerÚ#default_float_qparams_observer_4bitÚdefault_fused_act_fake_quantÚ'default_fused_per_channel_wt_fake_quantÚdefault_fused_wt_fake_quantÚdefault_histogram_fake_quantÚdefault_histogram_observerÚdefault_observerÚ%default_per_channel_weight_fake_quantÚ#default_per_channel_weight_observerÚdefault_placeholder_observerÚdefault_reuse_input_observerÚ*default_symmetric_fixed_qparams_fake_quantÚ(default_symmetric_fixed_qparams_observerÚdefault_weight_fake_quantÚdefault_weight_observerÚdisable_fake_quantÚdisable_observerÚenable_fake_quantÚenable_observerÚfuse_conv_bnÚfuse_conv_bn_jitÚfuse_conv_bn_reluÚfuse_convtranspose_bnÚfuse_linear_bnr
   r   Ú4fused_per_channel_wt_fake_quant_range_neg_127_to_127Ú(fused_wt_fake_quant_range_neg_127_to_127Úget_combined_dictÚ&get_default_compare_output_module_listÚget_default_custom_config_dictÚ)get_default_dynamic_quant_module_mappingsÚ0get_default_dynamic_sparse_quant_module_mappingsÚ0get_default_float_to_quantized_operator_mappingsÚget_default_qat_module_mappingsÚget_default_qat_qconfigÚget_default_qat_qconfig_dictÚget_default_qat_qconfig_mappingÚget_default_qconfigÚget_default_qconfig_dictÚget_default_qconfig_mappingÚ$get_default_qconfig_propagation_listÚ(get_default_static_quant_module_mappingsÚ2get_default_static_quant_reference_module_mappingsÚ/get_default_static_sparse_quant_module_mappingsÚget_dynamic_quant_module_classÚ!get_embedding_qat_module_mappingsÚ*get_embedding_static_quant_module_mappingsÚget_fuser_methodÚget_fuser_method_newÚget_observer_state_dictÚget_quantized_operatorÚget_static_quant_module_classÚload_observer_state_dictÚno_observer_setÚ0per_channel_weight_observer_range_neg_127_to_127ÚprepareÚprepare_dynamic_jitÚprepare_jitÚprepare_qatÚpropagate_qconfig_Úqconfig_equalsÚquantizeÚquantize_dynamicÚquantize_dynamic_jitÚquantize_jitÚquantize_qatÚscript_qconfigÚscript_qconfig_dictÚswap_moduleÚ$weight_observer_range_neg_127_to_127ÚAffineQuantizedObserverBaseÚGranularityÚMappingTypeÚPerAxisÚPerBlockÚPerGroupÚPerRowÚ	PerTensorÚPerTokenÚTorchAODTypeÚZeroPointDomainÚget_block_sizec                 ó*   • U H  u  p#U " U5        M     g)z¢Define the default evaluation function.

Default evaluation function takes a torch.utils.data.Dataset or a list of
input Tensors and run the model on the dataset
N© )ÚmodelÚ
calib_dataÚdataÚ_targets       Ú[/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/ao/quantization/__init__.pyr2   r2   §   s   € ó $‰ˆÙˆdŽò $ó    c                   óÒ   ^ • \ rS rSrSr    SS\R                  S\\   S\	\\   /\
\\4   4   S\S-  S\S-  S	\R                  S-  S
\S-  4U 4S jjjrS\S\4S jrS rSrU =r$ )Ú_DerivedObserverOrFakeQuantizeé±   zmThis observer is used to describe an observer whose quantization parameters
are derived from other observers
NÚdtypeÚ
obs_or_fqsÚderive_qparams_fnÚ	quant_minÚ	quant_maxÚqschemeÚch_axisc                 óØ   >• [         T	U ]  U5        X l        X0l        X@l        XPl        X`l        Xpl        SSKJ	n  U" U R                  5      (       a  U R                  c  [        S5      eg g )Nr   )Úis_per_channelz6Must provide a valid ch_axis if qscheme is per channel)ÚsuperÚ__init__r–   r—   r˜   r™   rš   r›   Úutilsr�   ÚAssertionError)
Úselfr•   r–   r—   r˜   r™   rš   r›   r�   Ú	__class__s
            €r�   rŸ   Ú'_DerivedObserverOrFakeQuantize.__init__¶   sg   ø€ ô 	‰Ñ˜ÔØ$ŒØ!2ÔØ"ŒØ"ŒØŒØŒå)á˜$Ÿ,™,×'Ñ'Ø�|‰|Ñ#Ü$ØLóð ð $ð (r‘   ÚxÚreturnc                 ó   • U$ ©Nr‹   )r¢   r¥   s     r�   ÚforwardÚ&_DerivedObserverOrFakeQuantize.forwardÒ   s   € Øˆr‘   c                 ó8   • U R                  U R                  5      $ r¨   )r—   r–   )r¢   s    r�   Úcalculate_qparamsÚ0_DerivedObserverOrFakeQuantize.calculate_qparamsÕ   s   € Ø×%Ñ% d§o¡oÓ6Ð6r‘   )r›   r—   r–   rš   r™   r˜   )NNNN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Útorchr•   Úlistr   r   Útupler   Úintrš   rŸ   r©   r¬   Ú__static_attributes__Ú__classcell__)r£   s   @r�   r“   r“   ±   s¿   ø† ñð !%Ø $Ø(,Ø"ñà�{‰{ðð Ð/Ñ0ðð $ØÐ(Ñ)Ð*¨E°&¸&°.Ñ,AÐAñ
ð	ð ˜‘:ðð ˜‘:ðð —‘ Ñ%ðð �t‘÷ð ð8˜ð  Fô ÷7ð 7r‘   r“   )ÚsysÚcollections.abcr   Útypingr   r   Útyping_extensionsr   r³   r   Úfake_quantizer
   r   Úfuser_method_mappingsÚobserverÚqconfigÚqconfig_mappingÚ
quant_typeÚquantization_mappingsru   rx   Ústubsr   r   r   Ú__all__r2   r“   r‹   r‘   r�   Ú<module>rÆ      sl   ðó Ý $ß "Ý +ã Ý ä ß 8Ü $Ü Ü Ü Ü Ü $Ü Ü Ü ñ 'Ø˜lÐ-=Ñ=óÐ ò
F€òRô%7 \õ %7r‘   