Ë
    ÄÓ^jÂ  ã                   ó   — d dl Z d dl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j                  j                  ez  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)ÚGraphModule)ÚGraph)ÚFusedGraphModuleÚObservedGraphModuleÚObservedStandaloneGraphModuleÚQuantizedGraphModulec                   óp   ‡ — e Zd Zdej                  j
                  eeef   z  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         €úp/var/www/ramen.bs-engineer-server.com/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   ÚdictÚstrr   r   Úsetr   r%   Ú__classcell__©r   s   @r   r   r      sB   ø„ ð7à�h‰h�o‰o  S¨# X¡Ñ.ð7ð ð7ð " #™hõ	7ö&
r&   r   c                   óp   ‡ — e Zd Zdej                  j
                  eeef   z  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'   r/   s   @r   r   r   0   sB   ø„ ð7à�h‰h�o‰o  S¨# X¡Ñ.ð7ð ð7ð " #™hõ	7ö<
r&   r   ÚmoduleÚreturnc                 ó:   — t        | d«      xr d| j                  v S ©NÚmetaÚ_observed_graph_module_attrs)r   rB   ©r>   s    r   Ú_is_observed_modulerE   Y   s   € Ü�6˜6Ó"ÒTÐ'EÈÏÉÐ'TÐTr&   ÚmodelÚ	attr_namec                 ój   — t        | d«      r'd| j                  v rt        | j                  d   |«      S y rA   )r   rB   r   )rF   rG   s     r   Ú_get_observed_graph_module_attrrI   ]   s4   € ô ˆu�fÔÐ"@ÀEÇJÁJÑ"NÜ�u—z‘zÐ"@ÑAÀ9ÓMÐMØr&   c                   óp   ‡ — e Zd Zdej                  j
                  eeef   z  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'   r/   s   @r   r   r   e   sB   ø„ ð<à�h‰h�o‰o  S¨# X¡Ñ.ð<ð ð<ð " #™hõ	<ö
r&   r   c                 óN   — t        | «      xr | j                  d   j                  S )NrC   )rE   rB   Úis_observed_standalone_modulerD   s    r   Ú_is_observed_standalone_modulerQ   ~   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_varsrG   Ú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j
                  j                  eee	f   z  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 rS   )
Ú
startswithrV   r   rW   rX   r   ÚappendÚpopr   Ú_load_from_state_dict)r   Ú
state_dictrZ   Úlocal_metadataÚstrictÚmissing_keysÚunexpected_keysÚ
error_msgsÚattrs_to_poprG   r   s             €r   re   z*QuantizedGraphModule._load_from_state_dict¦   s¥   ø€ ð ˆØ#ò 	/ˆIØ×#Ñ#Ð$4Õ5¼*Ø˜9Ñ%¤u§x¡x×'<Ñ'<õ;ô ˜˜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   re   r%   r.   r/   s   @r   r	   r	   Ž   sM   ø„ ñð<à�h‰h�o‰o  S¨# X¡Ñ.ð<ð ð<ð " #™hõ	<ô"
ö@
r&   r	   )r   Útypingr   r   Útorch.fxr   Útorch.fx.graphr   Ú__all__r   r   ÚboolrE   r   r   r,   rI   r   rQ   r]   r	   © r&   r   ú<module>ru      s¥   ðã Ý ã Ý  Ý  ò€ô
�{ô 
ô<&
˜+ô &
ðRU ð U¨ó UðØ�8‰8�?‰?˜[Ñ(ðØ58ðàóô
Ð$7ô 
ð2¨3ð °4ó ò<ô?
˜;õ ?
r&   