Ë
    ÄÓ^jò1  ã                   ó  — d dl mZ d dlZd dlmc mc mZ d dlmc mc mc m	Z
 d dlmc mc mc mZ d dlmc mc m	Z d dlmc mc mZ d dlmc mc mc mZ d dlmZ d dlmc mZ d dlmZ d dlmZ ddlmZmZ ddl m!Z!m"Z"m#Z# ejH                  j                  Z%dejL                  d	ejN                  fd
„Z(dejL                  d	ejN                  fd„Z)dejL                  d	ejN                  fd„Z*dejL                  d	e+ejN                     fd„Z,dejL                  d	e+ejN                     fd„Z-dejL                  d	ejN                  fd„Z.dejL                  d	ejN                  fd„Z/dejL                  d	e+ejN                     fd„Z0deded	ejN                  fd„Z1deded	ejN                  fd„Z2deded	ejN                  fd„Z3deded	ejN                  fd„Z4d	e5e6e5eef   f   fd„Z7	 ddedede5e6e5eef   f   dz  d	edz  fd„Z8y)é    )ÚCallableN)ÚGraphModule)ÚNodeé   )ÚNSSingleResultTypeÚNSSingleResultValuesType)Úget_target_type_strÚgetattr_from_fqnÚreturn_first_non_observer_nodeÚmodÚreturnc                 ó6   — | j                   j                  «       S ©N©ÚweightÚdetach©r   s    úf/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/torch/ao/ns/fx/weight_utils.pyÚmod_weight_detachr      s   € Ø�:‰:×ÑÓÐó    c                 ó<   — | d   j                   j                  «       S ©Nr   r   r   s    r   Úmod_0_weight_detachr      s   € Øˆq‰6�=‰=×ÑÓ!Ð!r   c                 ó(   — | j                  «       d   S r   )Ú_weight_biasr   s    r   Úmod_weight_bias_0r      s   € Ø×ÑÓ˜aÑ Ð r   c                 ó²   — g }t        | j                  «      D ]<  \  }}d|v sd|v sŒ| j                  |   j                  «       }|j	                  |«       Œ> |S )NÚweight_ih_lÚweight_hh_l)Ú	enumerateÚ_flat_weights_namesÚ_flat_weightsr   Úappend)r   ÚresÚidxÚ
param_nameÚparam_values        r   Úget_lstm_weightr(   "   s`   € Ø
€CÜ$ S×%<Ñ%<Ó=ò $‰ˆˆZØ˜JÑ&¨-¸:Ò*EØ×+Ñ+¨CÑ0×7Ñ7Ó9ˆKØ�J‰J�{Õ#ð$ð €Jr   c                 óD  — g }| j                   D ]Ž  }|j                  |j                  j                  «       d   d   d   j                  «       d   d   «       |j                  |j                  j                  «       d   d   d   j                  «       d   d   «       Œ� |S )Nr   é   r   )Ú_all_weight_valuesr#   ÚparamÚ__getstate__)r   r$   Úweight_values      r   Úget_qlstm_weightr/   +   s¡   € Ø
€CØ×.Ñ.ò TˆØ�
‰
�<×%Ñ%×2Ñ2Ó4°QÑ7¸Ñ:¸1Ñ=×JÑJÓLÈQÑOÐPQÑRÔSØ�
‰
�<×%Ñ%×2Ñ2Ó4°QÑ7¸Ñ:¸1Ñ=×JÑJÓLÈQÑOÐPQÑRÕSðTð €Jr   c                 óz  — t        | t        j                  t        j                  t        j                  f«      r| j
                  j                  «       S t        | t        j                  t        j                  t        j                  f«      r| d   j
                  j                  «       S | j                  «       d   S r   )Ú
isinstanceÚnnÚConv1dÚConv2dÚConv3dr   r   ÚnniÚ
ConvReLU1dÚ
ConvReLU2dÚ
ConvReLU3dr   r   s    r   Úget_conv_mod_weightr:   3   sz   € Ü�#œŸ	™	¤2§9¡9¬b¯i©iÐ8Ô9Ø�z‰z× Ñ Ó"Ð"Ü	�Cœ#Ÿ.™.¬#¯.©.¼#¿.¹.ÐIÔ	JØ�1‰v�}‰}×#Ñ#Ó%Ð%à×ÑÓ! !Ñ$Ð$r   c                 óþ   — t        | t        j                  «      r| j                  j	                  «       S t        | t
        j                  «      r| d   j                  j	                  «       S | j                  «       d   S r   )r1   r2   ÚLinearr   r   r6   Ú
LinearReLUr   r   s    r   Úget_linear_mod_weightr>   <   s\   € Ü�#”r—y‘yÔ!Ø�z‰z× Ñ Ó"Ð"Ü	�CœŸ™Ô	(Ø�1‰v�}‰}×#Ñ#Ó%Ð%à×ÑÓ! !Ñ$Ð$r   c                 óŒ  — t        | t        j                  «      rXg }t        | j                  «      D ]<  \  }}d|v sd|v sŒ| j
                  |   j                  «       }|j                  |«       Œ> |S t        | t        j                  «      st        dt        | «      › d�«      ‚g }| j                  D ]Ž  }|j                  |j                  j                  «       d   d   d   j                  «       d   d   «       |j                  |j                  j                  «       d   d   d   j                  «       d   d   «       Œ� |S )Nr   r   ztype z not handled yetr   r*   r   )r1   r2   ÚLSTMr    r!   r"   r   r#   ÚnnqdÚAssertionErrorÚtyper+   r,   r-   )r   r$   r%   r&   r'   r.   s         r   Úget_lstm_mod_weightsrD   E   s8  € ä�#”r—w‘wÔØˆÜ(¨×)@Ñ)@ÓAò 	(‰OˆC�Ø 
Ñ*¨m¸zÒ.IØ!×/Ñ/°Ñ4×;Ñ;Ó=�Ø—
‘
˜;Õ'ð	(ð ˆ
ä˜#œtŸy™yÔ)Ü  5¬¨c«¨Ð3CÐ!DÓEÐEØˆØ×2Ñ2ò 	ˆLØ�J‰JØ×"Ñ"×/Ñ/Ó1°!Ñ4°QÑ7¸Ñ:×GÑGÓIÈ!ÑLÈQÑOôð �J‰JØ×"Ñ"×/Ñ/Ó1°!Ñ4°QÑ7¸Ñ:×GÑGÓIÈ!ÑLÈQÑOõð		ð ˆ
r   ÚnodeÚgmc                 ón  — | j                   d   }t        |t        «      st        dt	        |«      › �«      ‚t        ||«      }t        |t        «      st        dt	        |«      › �«      ‚|j                  dk7  rt        d|j                  › �«      ‚t        ||j                  «      }|j                  «       S ©Nr   úExpected Node, got Úget_attrúExpected get_attr, got )
Úargsr1   r   rB   rC   r   Úopr
   Útargetr   )rE   rF   Úweight_arg_nodeÚweight_noder   s        r   Úget_conv_fun_weightrQ   \   s£   € à—i‘i ‘l€OÜ�o¤tÔ,ÜÐ2´4¸Ó3HÐ2IÐJÓKÐKÜ0°À"ÓE€KÜ�k¤4Ô(ÜÐ2´4¸Ó3DÐ2EÐFÓGÐGØ‡~�~˜Ò#ÜÐ6°{·~±~Ð6FÐGÓHÐHÜ˜b +×"4Ñ"4Ó5€FØ�=‰=‹?Ðr   c                 ó  — | j                   d   }t        |t        «      st        dt	        |«      › �«      ‚|j
                  dk7  rt        d|j
                  › �«      ‚t        ||j                  «      }|j                  «       S rH   )	rL   r1   r   rB   rC   rM   r
   rN   r   )rE   rF   Úqconv_state_nodeÚqconv_state_objs       r   Úget_qconv_fun_weightrU   j   s€   € à—y‘y ‘|ÐÜÐ&¬Ô-ÜÐ2´4Ð8HÓ3IÐ2JÐKÓLÐLØ×Ñ˜jÒ(ÜÐ6Ð7G×7JÑ7JÐ6KÐLÓMÐMÜ& rÐ+;×+BÑ+BÓC€OØ×!Ñ!Ó#Ð#r   c                 ó   — | j                   d   }t        |t        «      st        dt	        |«      › �«      ‚|j
                  dk(  r¹| j                   d   }t        |t        «      st        dt	        |«      › �«      ‚|j                   d   }t        |t        «      st        dt	        |«      › �«      ‚|j
                  dk7  rt        d|j
                  › �«      ‚t        ||j                  «      }|j                  «       S |j
                  dk(  �r4|j
                  dk7  rt        d|j
                  › �«      ‚| j                   d   }t        |t        «      st        dt	        |«      › �«      ‚|j                   d   }t        |t        «      st        dt	        |«      › �«      ‚|j                   d   }|j                   d   }t        |t        «      st        dt	        |«      › �«      ‚|j
                  dk7  rt        d|j
                  › �«      ‚t        ||j                  «      }|j                  «       j                  |«      S |j
                  dk7  rt        d|j
                  › �«      ‚t        ||j                  «      }|j                  «       S )	Nr   rI   Úcall_moduler   rJ   rK   Úcall_methodzExpected call_method, got )
rL   r1   r   rB   rC   rM   r
   rN   r   Úto)	rE   rF   Úlinear_second_argrO   rP   r   Údequant_nodeÚto_fp16_nodeÚtarget_dtypes	            r   Úget_linear_fun_weightr^   u   s\  € ð
 Ÿ	™	 !™ÐÜÐ'¬Ô.ÜÐ2´4Ð8IÓ3JÐ2KÐLÓMÐMà×Ñ˜}Ò,àŸ)™) A™,ˆÜ˜/¬4Ô0Ü Ð#6´t¸OÓ7LÐ6MÐ!NÓOÐOØ%×*Ñ*¨1Ñ-ˆÜ˜+¤tÔ,Ü Ð#6´t¸KÓ7HÐ6IÐ!JÓKÐKØ�>‰>˜ZÒ'Ü Ð#:¸;¿>¹>Ð:JÐ!KÓLÐLÜ! " k×&8Ñ&8Ó9ˆØ�}‰}‹ÐØ	×	Ñ	 Ó	.à×Ñ =Ò0Ü Ð#=Ð>O×>RÑ>RÐ=SÐ!TÓUÐUØ—y‘y ‘|ˆÜ˜,¬Ô-Ü Ð#6´t¸LÓ7IÐ6JÐ!KÓLÐLØ#×(Ñ(¨Ñ+ˆÜ˜,¬Ô-Ü Ð#6´t¸LÓ7IÐ6JÐ!KÓLÐLà#×(Ñ(¨Ñ+ˆØ"×'Ñ'¨Ñ*ˆÜ˜+¤tÔ,Ü Ð#6´t¸KÓ7HÐ6IÐ!JÓKÐKØ�>‰>˜ZÒ'Ü Ð#:¸;¿>¹>Ð:JÐ!KÓLÐLÜ! " k×&8Ñ&8Ó9ˆà�}‰}‹×!Ñ! ,Ó/Ð/à×Ñ :Ò-Ü Ð#:Ð;L×;OÑ;OÐ:PÐ!QÓRÐRÜ! "Ð&7×&>Ñ&>Ó?ˆØ�}‰}‹Ðr   c                 ó  — | j                   d   }t        |t        «      st        dt	        |«      › �«      ‚|j
                  dk7  rt        d|j
                  › �«      ‚t        ||j                  «      }|j                  «       \  \  }}}|S rH   )	rL   r1   r   rB   rC   rM   r
   rN   r-   )rE   rF   Úpacked_weight_nodeÚpacked_weightr   Ú_biasÚ_names          r   Úget_qlinear_fun_weightrd   ¥   s�   € àŸ™ 1™ÐÜÐ(¬$Ô/ÜÐ2´4Ð8JÓ3KÐ2LÐMÓNÐNØ×Ñ 
Ò*ÜÐ6Ð7I×7LÑ7LÐ6MÐNÓOÐOÜ$ RÐ);×)BÑ)BÓC€Mà*×7Ñ7Ó9Ñ�O€VˆU�UØ€Mr   c                  óÜ  — i t         j                  t        “t        j                  t
        “t        j                  t        “t        j                  t        “t        j                  t        “t        j                  t        “t        j                  t        “t        j                  t        “t         j                  t        “t        j                  t
        “t        j                  t        “t        j                  t        “t        j                  t        “t        j                   t        “t        j                  t        “t        j                  t        “t         j"                  t        “i t        j$                  t
        “t        j"                  t        “t        j"                  t        “t        j&                  t        “t        j(                  t        “t        j$                  t        “t        j$                  t        “t         j*                  t        “t        j*                  t        “t        j,                  t
        “t        j,                  t        “t        j*                  t        “t.        j*                  t        “t        j,                  t        “t        j0                  t        “t         j2                  j4                  j6                  t        “t         j8                  t:        “¥t.        j8                  t<        i¥t>        j@                  tB        t>        jD                  tB        t>        jF                  tB        tH        j@                  tJ        tH        jD                  tJ        tH        jF                  tJ        tH        jL                  tJ        tH        jN                  tJ        tH        jP                  tJ        t>        j4                  tR        tH        j4                  tT        tH        jV                  tT        idœ} | S )N)rW   Úcall_function),r2   r3   r   r6   r7   r   Únnqr   ÚnnqatÚnniqatÚConvBn1dÚConvBnReLU1dÚnniqr4   r8   ÚConvBn2dÚConvBnReLU2dr5   r9   ÚConvBn3dÚConvBnReLU3dr<   r=   rA   Ú
LinearBn1dÚmodulesÚlinearÚNonDynamicallyQuantizableLinearr@   r(   r/   ÚFÚconv1drQ   Úconv2dÚconv3dÚtoqrU   Úconv1d_reluÚconv2d_reluÚconv3d_relur^   rd   Úlinear_relu)Ú"op_to_type_to_weight_extraction_fns    r   Ú&get_op_to_type_to_weight_extraction_fnr   ²   s  € ð)
ä�I‰IÔ(ð)
ô �N‰NÔ/ð)
ô �J‰JÔ)ð	)
ô
 �L‰LÔ+ð)
ô �O‰OÔ.ð)
ô ×ÑÔ!2ð)
ô ×ÑÔ0ð)
ô �O‰OÔ.ð)
ô �I‰IÔ(ð)
ô �N‰NÔ/ð)
ô �J‰JÔ)ð)
ô �L‰LÔ+ð)
ô �O‰OÔ.ð)
ô  ×ÑÔ!2ð!)
ô" ×ÑÔ0ð#)
ô$ �O‰OÔ.ð%)
ô( �I‰IÔ(ñ))
ô* �N‰NÔ/ð+)
ô, �J‰JÔ)ð-)
ô. �L‰LÔ+ð/)
ô0 �O‰OÔ.ð1)
ô2 ×ÑÔ!2ð3)
ô4 ×ÑÔ0ð5)
ô6 �O‰OÔ.ð7)
ô: �I‰IÔ(ð;)
ô< �J‰JÔ)ð=)
ô> �N‰NÔ/ð?)
ô@ �O‰OÔ.ðA)
ôB �L‰LÔ+ðC)
ôD �K‰KÔ*ðE)
ôF ×ÑÔ0ðG)
ôH ×ÑÔ0ðI)
ôJ �J‰J×Ñ×=Ñ=Ô?PðK)
ôN �G‰G”_ñO)
ôP �I‰IÔ'ñQ)
ôX �H‰HÔ)Ü�H‰HÔ)Ü�H‰HÔ)Ü�J‰JÔ,Ü�J‰JÔ,Ü�J‰JÔ,Ü�O‰OÔ1Ü�O‰OÔ1Ü�O‰OÔ1ä�H‰HÔ+Ü�J‰JÔ.Ü�O‰OÔ3ð
ñW;OÐ&ðz .Ð-r   r~   c                 óú  — t         j                  j                  }d }t        |d«      r|j                  | j
                     d   }|€
t        «       }t        | |«      }|}| j                  dk(  rY|d   }|j                  «       D ]@  \  }}	| j                  |k(  sŒ |	| |«      }
||
g| j
                  || j
                  |dd|dœ	c S  y | j                  dk(  r¦t        | j                  t        «      s!t        dt        | j                  «      › �«      ‚t        || j                  «      }|d   }|j                  «       D ]=  \  }}	t        |«      |u sŒ |	|«      }
||
g| j
                  || j
                  |dd|dœ	c S  y )NÚ_node_name_to_scoper   rf   )	rC   ÚvaluesÚprev_node_nameÚprev_node_target_typeÚref_node_nameÚref_node_target_typeÚindex_within_argÚindex_of_argÚfqnrW   zExpected str, got )r   ÚWEIGHTÚvalueÚhasattrr�   Únamer   r	   rM   ÚitemsrN   r1   ÚstrrB   rC   r
   )rE   rF   r~   Úres_typer‰   Úref_node_typeÚprev_node_typeÚfunction_mappingÚtarget_fn_typeÚweight_extraction_fnr   r   Úmodule_mappingÚtarget_mod_types                 r   Úextract_weight_from_noder˜   ó   s�  € ô (×.Ñ.×4Ñ4€Hð €CÜˆrÐ(Ô)Ø×$Ñ$ T§Y¡YÑ/°Ñ2ˆà)Ð1Ü-SÓ-UÐ*ä'¨¨bÓ1€Mà"€Nà‡w�w�/Ò!Ø=¸oÑNÐØ4D×4JÑ4JÓ4Lò 	Ñ0ˆNÐ0Ø�{‰{˜nÓ,Ù-¨d°BÓ7�à$Ø%˜hØ&*§i¡iØ-;Ø%)§Y¡YØ,9Ø()Ø$%Øñ
ò 
ð	ðH ð+ 
�‰�MÒ	!ä˜$Ÿ+™+¤sÔ+Ü Ð#5´d¸4¿;¹;Ó6GÐ5HÐ!IÓJÐJÜ˜r 4§;¡;Ó/ˆØ;¸MÑJˆØ5C×5IÑ5IÓ5Kò 	Ñ1ˆOÐ1Ü�C‹y˜OÒ+Ù-¨cÓ2�à$Ø%˜hØ&*§i¡iØ-;Ø%)§Y¡YØ,9Ø()Ø$%Øñ
ò 
ð	ð r   r   )9Úcollections.abcr   ÚtorchÚtorch.ao.nn.intrinsicÚaor2   Ú	intrinsicr6   Útorch.ao.nn.intrinsic.qatÚqatri   Útorch.ao.nn.intrinsic.quantizedÚ	quantizedrl   Útorch.ao.nn.qatrh   Útorch.ao.nn.quantizedrg   Útorch.ao.nn.quantized.dynamicÚdynamicrA   Útorch.nnÚtorch.nn.functionalÚ
functionalru   Útorch.fxr   Útorch.fx.graphr   Úns_typesr   r   Úutilsr	   r
   r   Úopsry   ÚModuleÚTensorr   r   r   Úlistr(   r/   r:   r>   rD   rQ   rU   r^   rd   Údictr�   r   r˜   © r   r   ú<module>r³      s(  ðÝ $ã ß #Ó #ß *Ö *ß .Ö .ß Ó ß #Ó #ß ,Ö ,Ý ß Ð Ý  Ý ç Bß XÑ Xð ‡i�i×Ñ€ð˜2Ÿ9™9ð ¨¯©ó ð"˜RŸY™Yð "¨5¯<©<ó "ð!˜2Ÿ9™9ð !¨¯©ó !ð˜Ÿ™ð  t¨E¯L©LÑ'9ó ð˜"Ÿ)™)ð ¨¨U¯\©\Ñ(:ó ð%˜RŸY™Yð %¨5¯<©<ó %ð%˜rŸy™yð %¨U¯\©\ó %ð˜bŸi™ið ¨D°·±Ñ,>ó ð.˜dð ¨ð ¸¿¹ó ð$˜tð $¨ð $¸¿¹ó $ð- ð -¨+ð -¸%¿,¹,ó -ð`
 ð 
¨;ð 
¸5¿<¹<ó 
ð>.°°S¸$¸xÈÐ?QÑ:RÐ5RÑ0Só >.ðJ ñ	;Ø
ð;àð;ð )-¨S°$°xÀÐ7IÑ2JÐ-JÑ(KØ
ñ)ð;ð
 ˜$Ñô;r   