Ë
    g^(hØ+  ã                   ó  — d dl mZ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jJ                  j                  Z&dejN                  d	ejP                  fd
„Z)dejN                  d	ejP                  fd„Z*dejN                  d	ejP                  fd„Z+dejN                  d	e,ejP                     fd„Z-dejN                  d	e,ejP                     fd„Z.dejN                  d	ejP                  fd„Z/dejN                  d	ejP                  fd„Z0dejN                  d	e,ejP                     fd„Z1deded	ejP                  fd„Z2deded	ejP                  fd„Z3deded	ejP                  fd„Z4deded	ejP                  fd„Z5d	e6e7e6eef   f   fd„Z8	 ddededee6e7e6eef   f      d	ee   fd„Z9y)é    )ÚCallableÚOptionalN)Ú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    úY/var/www/skyplay_api_hub/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_weightr0   +   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   )r2   r3   ÚLinearr   r   r7   Ú
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J 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   )r2   r3   ÚLSTMr!   r"   r#   r   r$   ÚnnqdÚtyper,   r-   r.   )r   r%   r&   r'   r(   r/   s         r   Úget_lstm_mod_weightsrD   E   s6  € ä�#”r—w‘wÔØˆÜ(¨×)@Ñ)@ÓAò 	(‰OˆC�Ø 
Ñ*¨m¸zÒ.IØ!×/Ñ/°Ñ4×;Ñ;Ó=�Ø—
‘
˜;Õ'ð	(ð ˆ
ä˜#œtŸy™yÔ)ÐN¨U´4¸³9°+Ð=MÐ+NÓNÐ)ØˆØ×2Ñ2ò 	XˆLØ�J‰J�|×)Ñ)×6Ñ6Ó8¸Ñ;¸AÑ>¸qÑA×NÑNÓPÐQRÑSÐTUÑVÔWØ�J‰J�|×)Ñ)×6Ñ6Ó8¸Ñ;¸AÑ>¸qÑA×NÑNÓPÐQRÑSÐTUÑVÕWð	Xð ˆ
r   ÚnodeÚgmc                 óî   — | j                   d   }t        |t        «      sJ ‚t        ||«      }t        |t        «      sJ ‚|j                  dk(  sJ ‚t        ||j                  «      }|j                  «       S ©Nr   Úget_attr)Úargsr2   r   r   Úopr   Útargetr   )rE   rF   Úweight_arg_nodeÚweight_noder   s        r   Úget_conv_fun_weightrO   W   sk   € à—i‘i ‘l€OÜ�o¤tÔ,Ð,Ð,Ü0°À"ÓE€KÜ�k¤4Ô(Ð(Ð(Ø�>‰>˜ZÒ'Ð'Ð'Ü˜b +×"4Ñ"4Ó5€FØ�=‰=‹?Ðr   c                 ó²   — | j                   d   }t        |t        «      sJ ‚|j                  dk(  sJ ‚t	        ||j
                  «      }|j                  «       S rH   )rJ   r2   r   rK   r   rL   r   )rE   rF   Úqconv_state_nodeÚqconv_state_objs       r   Úget_qconv_fun_weightrS   b   sW   € à—y‘y ‘|ÐÜÐ&¬Ô-Ð-Ð-Ø×Ñ *Ò,Ð,Ð,Ü& rÐ+;×+BÑ+BÓC€OØ×!Ñ!Ó#Ð#r   c                 ór  — | j                   d   }t        |t        «      sJ ‚|j                  dk(  ry| j                   d   }t        |t        «      sJ ‚|j                   d   }t        |t        «      sJ ‚|j                  dk(  sJ ‚t	        ||j
                  «      }|j                  «       S |j                  dk(  rÉ|j                  dk(  sJ ‚| j                   d   }t        |t        «      sJ ‚|j                   d   }t        |t        «      sJ ‚|j                   d   }|j                   d   }t        |t        «      sJ ‚|j                  dk(  sJ ‚t	        ||j
                  «      }|j                  «       j                  |«      S |j                  dk(  sJ ‚t	        ||j
                  «      }|j                  «       S )Nr   Úcall_moduler   rI   Úcall_method)rJ   r2   r   rK   r   rL   r   Úto)	rE   rF   Úlinear_second_argrM   rN   r   Údequant_nodeÚto_fp16_nodeÚtarget_dtypes	            r   Úget_linear_fun_weightr\   k   s›  € ð
 Ÿ	™	 !™ÐÜÐ'¬Ô.Ð.Ð.à×Ñ˜}Ò,àŸ)™) A™,ˆÜ˜/¬4Ô0Ð0Ð0Ø%×*Ñ*¨1Ñ-ˆÜ˜+¤tÔ,Ð,Ð,Ø�~‰~ Ò+Ð+Ð+Ü! " k×&8Ñ&8Ó9ˆØ�}‰}‹ÐØ	×	Ñ	 Ò	.à ×#Ñ# }Ò4Ð4Ð4Ø—y‘y ‘|ˆÜ˜,¬Ô-Ð-Ð-Ø#×(Ñ(¨Ñ+ˆÜ˜,¬Ô-Ð-Ð-à#×(Ñ(¨Ñ+ˆØ"×'Ñ'¨Ñ*ˆÜ˜+¤tÔ,Ð,Ð,Ø�~‰~ Ò+Ð+Ð+Ü! " k×&8Ñ&8Ó9ˆà�}‰}‹×!Ñ! ,Ó/Ð/à ×#Ñ# zÒ1Ð1Ð1Ü! "Ð&7×&>Ñ&>Ó?ˆØ�}‰}‹Ðr   c                 óÂ   — | j                   d   }t        |t        «      sJ ‚|j                  dk(  sJ ‚t	        ||j
                  «      }|j                  «       \  \  }}}|S rH   )rJ   r2   r   rK   r   rL   r.   )rE   rF   Úpacked_weight_nodeÚpacked_weightr   Ú_biasÚ_names          r   Úget_qlinear_fun_weightrb   ‘   sd   € àŸ™ 1™ÐÜÐ(¬$Ô/Ð/Ð/Ø× Ñ  JÒ.Ð.Ð.Ü$ 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)rU   Úcall_function),r3   r4   r   r7   r8   r   Únnqr   ÚnnqatÚnniqatÚConvBn1dÚConvBnReLU1dÚnniqr5   r9   ÚConvBn2dÚConvBnReLU2dr6   r:   ÚConvBn3dÚConvBnReLU3dr=   r>   rB   Ú
LinearBn1dÚmodulesÚlinearÚNonDynamicallyQuantizableLinearrA   r)   r0   ÚFÚconv1drO   Úconv2dÚconv3dÚtoqrS   Úconv1d_reluÚconv2d_reluÚconv3d_relur\   rb   Ú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J ‚t        || j                  «      }|d   }|j                  «       D ]>  \  }}	t        |«      |k(  sŒ |	|«      }
||
g| j
                  || j
                  |dd|dœ	c S  y )NÚ_node_name_to_scoper   rd   )	rC   ÚvaluesÚprev_node_nameÚprev_node_target_typeÚref_node_nameÚref_node_target_typeÚindex_within_argÚindex_of_argÚfqnrU   )r	   ÚWEIGHTÚvalueÚhasattrr   Únamer}   r
   rK   ÚitemsrL   r2   Ústrr   rC   )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Ø()Ø$%Øñ
ò 
ð	ðF ð) 
�‰�MÒ	!ä˜$Ÿ+™+¤sÔ+Ð+Ð+Ü˜r 4§;¡;Ó/ˆØ;¸MÑJˆØ5C×5IÑ5IÓ5Kò 	Ñ1ˆOÐ1Ü�C‹y˜OÓ+Ù-¨cÓ2�à$Ø%˜hØ&*§i¡iØ-;Ø%)§Y¡YØ,9Ø()Ø$%Øñ
ò 
ð	ð r   r   ):Útypingr   r   ÚtorchÚtorch.ao.nn.intrinsicÚaor3   Ú	intrinsicr7   Útorch.ao.nn.intrinsic.qatÚqatrg   Útorch.ao.nn.intrinsic.quantizedÚ	quantizedrj   Útorch.ao.nn.qatrf   Útorch.ao.nn.quantizedre   Útorch.ao.nn.quantized.dynamicÚdynamicrB   Útorch.nnÚtorch.nn.functionalÚ
functionalrs   Útorch.fxr   Útorch.fx.graphr   Úns_typesr   r	   Úutilsr
   r   r   Úopsrw   ÚModuleÚTensorr   r   r   Úlistr)   r0   r;   r?   rD   rO   rS   r\   rb   Ú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ð $¨ð $¸¿¹ó $ð# ð #¨+ð #¸%¿,¹,ó #ðL ð ¨;ð ¸5¿<¹<ó ð>.°°S¸$¸xÈÐ?QÑ:RÐ5RÑ0Só >.ðL 	ñ;Ø
ð;àð;ð )1ØˆS�$�x Ð)Ñ*Ð*Ñ+ñ)ð;ð Ð Ñ!ô;r   