Ë
    �…jÀ  ã                   óf   — d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	  ee
«      Z G d„ de«      Zy)	é    )Ú	getLogger)ÚFusion)Úndarray)Úhelper)Ú	OnnxModelc                   ó4   ‡ — e Zd Zdefˆ fd„Zdedefd„Zˆ xZS )ÚFusionBiasAddÚmodelc                 ó(   •— t         ‰| �  |dd«       y )NÚBiasAddÚAdd)ÚsuperÚ__init__)Úselfr
   Ú	__class__s     €úi/root/aria/tools/markitdown-venv/lib/python3.12/site-packages/onnxruntime/transformers/fusion_bias_add.pyr   zFusionBiasAdd.__init__   s   ø€ Ü‰Ñ˜ 	¨5Õ1ó    Úinput_name_to_nodesÚoutput_name_to_nodec                 óÊ  — | j                   j                  |g d¢g d¢|«      }|€y|d   }|d   }|j                  d   |j                  vry| j                   j	                  |«      \  }}t        |t        «      r|�t        |t        «      sy|j                  dk7  ry| j                  j                  ||g«       | j                   j                  d«      }	t        j                  d|j                  d|z
     |j                  |   |j                  d   g|j                  d   g|	¬«      }
d	|
_        | j                  j!                  |
«       | j"                  | j$                  |	<   y)
zD
        Fuse Add bias and Add skip connection into BiasAdd
        )r   ÚMatMulÚBiasSplitGelur   ÚSkipLayerNormalization)r   Nr   r   r   Nr   éÿÿÿÿé   r   )ÚinputsÚoutputsÚnamezcom.microsoft)r
   Úmatch_parent_pathÚinputÚoutputÚget_constant_inputÚ
isinstanceÚintr   ÚndimÚnodes_to_removeÚextendÚcreate_node_namer   Ú	make_nodeÚdomainÚnodes_to_addÚappendÚthis_graph_nameÚnode_name_to_graph_name)r   Úadd_noder   r   ÚnodesÚ	bias_nodeÚskip_layer_normÚ
bias_indexÚ
bias_valueÚ	node_nameÚ
fused_nodes              r   ÚfusezFusionBiasAdd.fuse   sT  € ð
 —
‘
×,Ñ,ØÚRÚØó	
ˆð ˆ=Øà˜!‘Hˆ	Ø ™)ˆð �>‰>˜!Ñ O×$:Ñ$:Ñ:Øà!%§¡×!>Ñ!>¸yÓ!IÑˆ
�JÜ˜:¤sÔ+°Ð1GÌZÐXbÔdkÔMlØØ�?‰?˜aÒØà×Ñ×#Ñ# X¨yÐ$9Ô:Ø—J‘J×/Ñ/°	Ó:ˆ	Ü×%Ñ%ØØ—O‘O A¨
¡NÑ3°Y·_±_ÀZÑ5PÐRZ×R`ÑR`ÐabÑRcÐdØ—_‘_ QÑ'Ð(Øô	
ˆ
ð ,ˆ
ÔØ×Ñ× Ñ  Ô,Ø26×2FÑ2Fˆ×$Ñ$ YÒ/r   )Ú__name__Ú
__module__Ú__qualname__r   r   Údictr7   Ú__classcell__)r   s   @r   r	   r	      s%   ø„ ð2˜iõ 2ð&G°$ð &GÈT÷ &Gr   r	   N)Úloggingr   Úfusion_baser   Únumpyr   Úonnxr   Ú
onnx_modelr   r8   Úloggerr	   © r   r   ú<module>rD      s.   ðõ
 å Ý Ý Ý  á	�8Ó	€ô*G�Fõ *Gr   