Ë
    g^(hÖ  ã                   ó  — d dl Z d dlmZmZ d dlZd dlmZ d dlmZ g d¢Z	 G d„ de«      Z
 G d„ d	e«      Zd
edefd„Zdeej                  j                  ef   dedefd„Z G d„ de«      Zd
edefd„Zd„ Z G d„ de«      Zy)é    N)ÚAnyÚUnion)ÚGraphModule)ÚGraph)ÚFusedGraphModuleÚObservedGraphModuleÚObservedStandaloneGraphModuleÚQuantizedGraphModulec                   ót   ‡ — e Zd Zdeej
                  j                  eee	f   f   de
dee   fˆ fd„Zd„ Zˆ xZS )r   ÚrootÚgraphÚpreserved_attr_namesc                 óÌ   •— || _         | j                   D �ci c]  }t        ||«      r|t        ||«      “Œ }}t        ‰| �  ||«       |D ]  }t        | |||   «       Œ y c c}w ©N)r   ÚhasattrÚgetattrÚsuperÚ__init__Úsetattr©Úselfr   r   r   ÚattrÚpreserved_attrsÚ	__class__s         €úc/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/torch/ao/quantization/fx/graph_module.pyr   zFusedGraphModule.__init__   s~   ø€ ð %9ˆÔ!ð ×1Ñ1ö
àÜ�t˜TÔ"ð ”'˜$ Ó%Ñ%ð
ˆð 
ô
 	‰Ñ˜˜uÔ%Ø#ò 	7ˆDÜ�D˜$ °Ñ 5Õ6ñ	7ùò
s   — A!c                 ó  — t         j                  j                  «       }t        j                  | j
                  «      |_        t        |t        j                  | j                  «      t        j                  | j                  «      «      S r   )	ÚtorchÚnnÚModuleÚcopyÚdeepcopyÚ__dict__r   r   r   ©r   ÚmemoÚfake_mods      r   Ú__deepcopy__zFusedGraphModule.__deepcopy__&   sY   € Ü—8‘8—?‘?Ó$ˆÜ ŸM™M¨$¯-©-Ó8ˆÔÜØÜ�M‰M˜$Ÿ*™*Ó%Ü�M‰M˜$×3Ñ3Ó4ó
ð 	
ó    ©Ú__name__Ú
__module__Ú__qualname__r   r   r   r   ÚdictÚstrr   r   Úsetr   r&   Ú__classcell__©r   s   @r   r   r      sG   ø„ ð7à�E—H‘H—O‘O T¨#¨s¨(¡^Ð3Ñ4ð7ð ð7ð " #™hõ	7ö&
r'   r   c                   ót   ‡ — e Zd Zdeej
                  j                  eee	f   f   de
dee   fˆ fd„Zd„ Zˆ xZS )r   r   r   r   c                 óî   •— h d£j                  |«      | _        | j                  D �ci c]  }t        ||«      r|t        ||«      “Œ }}t        ‰| �  ||«       |D ]  }t        | |||   «       Œ y c c}w )N>
   Ú_is_qatÚ	_patternsÚ_qconfig_mappingÚ_node_name_to_scopeÚ_observed_node_namesÚ_node_name_to_qconfigÚ_prepare_custom_configÚ_activation_post_process_mapÚ _activation_post_process_indexesÚ"_equalization_node_name_to_qconfig)Úunionr   r   r   r   r   r   r   s         €r   r   zObservedGraphModule.__init__1   sŽ   ø€ ò%
÷ ‰%Ð$Ó
%ð 	Ô!ð ×1Ñ1ö
àÜ�t˜TÔ"ð ”'˜$ Ó%Ñ%ð
ˆð 
ô
 	‰Ñ˜˜uÔ%Ø#ò 	7ˆDÜ�D˜$ °Ñ 5Õ6ñ	7ùò
s   ¨ A2c                 ó  — t         j                  j                  «       }t        j                  | j
                  «      |_        t        |t        j                  | j                  «      t        j                  | j                  «      «      S r   )	r   r   r   r    r!   r"   r   r   r   r#   s      r   r&   z ObservedGraphModule.__deepcopy__O   sY   € Ü—8‘8—?‘?Ó$ˆÜ ŸM™M¨$¯-©-Ó8ˆÔÜ"ØÜ�M‰M˜$Ÿ*™*Ó%Ü�M‰M˜$×3Ñ3Ó4ó
ð 	
r'   r(   r0   s   @r   r   r   0   sG   ø„ ð7à�E—H‘H—O‘O T¨#¨s¨(¡^Ð3Ñ4ð7ð ð7ð " #™hõ	7ö<
r'   r   ÚmoduleÚreturnc                 ó:   — t        | d«      xr d| j                  v S ©NÚmetaÚ_observed_graph_module_attrs)r   rC   ©r?   s    r   Ú_is_observed_modulerF   Y   s   € Ü�6˜6Ó"ÒTÐ'EÈÏÉÐ'TÐTr'   ÚmodelÚ	attr_namec                 ój   — t        | d«      r'd| j                  v rt        | j                  d   |«      S y rB   )r   rC   r   )rG   rH   s     r   Ú_get_observed_graph_module_attrrJ   ]   s4   € ô ˆu�fÔÐ"@ÀEÇJÁJÑ"NÜ�u—z‘zÐ"@ÑAÀ9ÓMÐMØr'   c                   ót   ‡ — e Zd Zdeej
                  j                  eee	f   f   de
dee   fˆ fd„Zd„ Zˆ xZS )r	   r   r   r   c                 óN   •— |j                  ddh«      }t        ‰| �	  |||«       y )NÚ'_standalone_module_input_quantized_idxsÚ(_standalone_module_output_quantized_idxs)r=   r   r   )r   r   r   r   r   s       €r   r   z&ObservedStandaloneGraphModule.__init__f   s5   ø€ ð  4×9Ñ9à9Ø:ðó 
Ðô 	‰Ñ˜˜uÐ&:Õ;r'   c                 ó  — t         j                  j                  «       }t        j                  | j
                  «      |_        t        |t        j                  | j                  «      t        j                  | j                  «      «      S r   )	r   r   r   r    r!   r"   r	   r   r   r#   s      r   r&   z*ObservedStandaloneGraphModule.__deepcopy__t   sY   € Ü—8‘8—?‘?Ó$ˆÜ ŸM™M¨$¯-©-Ó8ˆÔÜ,ØÜ�M‰M˜$Ÿ*™*Ó%Ü�M‰M˜$×3Ñ3Ó4ó
ð 	
r'   r(   r0   s   @r   r	   r	   e   sG   ø„ ð<à�E—H‘H—O‘O T¨#¨s¨(¡^Ð3Ñ4ð<ð ð<ð " #™hõ	<ö
r'   r	   c                 óN   — t        | «      xr | j                  d   j                  S )NrD   )rF   rC   Úis_observed_standalone_modulerE   s    r   Ú_is_observed_standalone_modulerR   ~   s(   € ä˜FÓ#ò 	VØ�K‰KÐ6Ñ7×UÑUðr'   c                 ó´   — t        | «      D ]J  }d|v sŒt        t        | |«      t        j                  j
                  «      sŒ7t        | |«      }||||z   <   ŒL y ©NÚ_packed_weight)ÚdirÚ
isinstancer   r   Ú_CÚScriptObject)r   ÚdestinationÚprefixÚ	keep_varsrH   Úpacked_weights         r   Ú_save_packed_weightr^   …   sW   € Ü˜“Yò <ˆ	Ø˜yÒ(¬ZÜ�D˜)Ó$¤e§h¡h×&;Ñ&;õ.
ô $ D¨)Ó4ˆMØ.;ˆK˜ Ñ*Ò+ñ<r'   c                   ó‚   ‡ — e Zd ZdZdeej                  j                  ee	e
f   f   dedee	   fˆ fd„Zˆ fd„Zd„ Zˆ xZS )r
   a  This class is created to make sure PackedParams
    (e.g. LinearPackedParams, Conv2dPackedParams) to appear in state_dict
    so that we can serialize and deserialize quantized graph module with
    torch.save(m.state_dict()) and m.load_state_dict(state_dict)
    r   r   r   c                 óö   •— || _         | j                   D �ci c]  }t        ||«      r|t        ||«      “Œ }}t        ‰| �  ||«       |D ]  }t        | |||   «       Œ | j                  t        «       y c c}w r   )r   r   r   r   r   r   Ú_register_state_dict_hookr^   r   s         €r   r   zQuantizedGraphModule.__init__•   s�   ø€ ð %9ˆÔ!ð ×1Ñ1ö
àÜ�t˜TÔ"ð ”'˜$ Ó%Ñ%ð
ˆð 
ô
 	‰Ñ˜˜uÔ%Ø#ò 	7ˆDÜ�D˜$ °Ñ 5Õ6ð	7à×&Ñ&Ô':Õ;ùò
s   — A6c           	      ó(  •— g }|D ]]  }	|	j                  d«      sŒt        ||	   t        j                  j                  «      sŒ=t        | |	||	   «       |j                  |	«       Œ_ |D ]  }	|j                  |	«       Œ t        ‰
| �%  |||||||«       y rT   )
Ú
startswithrW   r   rX   rY   r   ÚappendÚpopr   Ú_load_from_state_dict)r   Ú
state_dictr[   Úlocal_metadataÚstrictÚmissing_keysÚunexpected_keysÚ
error_msgsÚattrs_to_poprH   r   s             €r   rf   z*QuantizedGraphModule._load_from_state_dict¦   s¤   ø€ ð ˆØ#ò 	/ˆIØ×#Ñ#Ð$4Õ5¼*ÀZÐPYÑEZÔ\a×\dÑ\d×\qÑ\qÕ:rÜ˜˜i¨°IÑ)>Ô?Ø×#Ñ# IÕ.ð	/ð &ò 	&ˆIØ�N‰N˜9Õ%ð	&ô 	‰Ñ%ØØØØØØØõ	
r'   c                 ó  — t         j                  j                  «       }t        j                  | j
                  «      |_        t        |t        j                  | j                  «      t        j                  | j                  «      «      S r   )	r   r   r   r    r!   r"   r
   r   r   r#   s      r   r&   z!QuantizedGraphModule.__deepcopy__Ä   sY   € Ü—8‘8—?‘?Ó$ˆÜ ŸM™M¨$¯-©-Ó8ˆÔÜ#ØÜ�M‰M˜$Ÿ*™*Ó%Ü�M‰M˜$×3Ñ3Ó4ó
ð 	
r'   )r)   r*   r+   Ú__doc__r   r   r   r   r,   r-   r   r   r.   r   rf   r&   r/   r0   s   @r   r
   r
   Ž   sQ   ø„ ñð<à�E—H‘H—O‘O T¨#¨s¨(¡^Ð3Ñ4ð<ð ð<ð " #™hõ	<ô"
ö<
r'   r
   )r    Útypingr   r   r   Útorch.fxr   Útorch.fx.graphr   Ú__all__r   r   ÚboolrF   r   r   r-   rJ   r	   rR   r^   r
   © r'   r   ú<module>rv      sª   ðã ß ã Ý  Ý  ò€ô
�{ô 
ô<&
˜+ô &
ðRU ð U¨ó UðØ�—‘—‘ +Ð-Ñ.ðØ;>ðàóô
Ð$7ô 
ð2¨3ð °4ó ò<ô=
˜;õ =
r'   