
    `i                     ^    S SK Jr  S SKJrJr  S SKJr  S SKJr  \" \	5      r
 " S S\5      rg)    )	getLogger)helpernumpy_helper)	OnnxModel)Fusionc                   6   ^  \ rS rSrS\4U 4S jjrS rSrU =r$ )FusionBiasGelu   modelc                 \   > U(       a  [         TU ]  USSS5        g [         TU ]  USS5        g )NFastGeluzadd biasBiasGeluGelu)super__init__)selfr   is_fastgelu	__class__s      m/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/onnxruntime_tools/transformers/fusion_biasgelu.pyr   FusionBiasGelu.__init__   s*    GUJ
JGGUJ7    c           
      6   UR                   nUS:X  a  SOSn[        UR                  5      S:w  a  g U R                  R	                  USS/SS /5      nUc  g Uu  pxSn	[        UR                  5       H=  u  pU R                  R                  U5      nUc  M%  U
n	[        R                  " U5      n  O   Wc  g [        UR                  5      S:w  a  g X/nU R                  R                  XR                  S   /UU5      (       d  g U R                  R                  U5        [        R                  " UUR                  S   UR                  U	   /UR                  U R                  R!                  XTS	-   5      S
9nSUl        U R$                  R'                  U5        g )Nr   r   r      AddMatMulr   	_AddBias_)inputsoutputsnamezcom.microsoft)op_typeleninputr   match_parent_path	enumerateget_initializerr   to_arrayshapeis_safe_to_fuse_nodesoutputnodes_to_removeextendr   	make_nodecreate_node_namedomainnodes_to_addappend)r   nodeinput_name_to_nodesoutput_name_to_nodegelu_op_typefuse_op_typenodesaddmatmul
bias_indexir#   initializerbias_weightsubgraph_nodes
fused_nodes                   r   fuseFusionBiasGelu.fuse   s   ||%1V%;ztzz?a

,,TE83Dq$iP= 
!#)),HA**44U;K"J&//<K - {  !Q&zz//Q@PRe0CE E##N3%%l.4mmA.>		*@U-V.2kk+/::+F+F|doUo+pr
 ,
  ,r    )	__name__
__module____qualname____firstlineno__r   r   r@   __static_attributes____classcell__)r   s   @r   r	   r	      s    8i 8&- &-r   r	   N)loggingr   onnxr   r   
onnx_modelr   fusion_baser   rC   loggerr	   rB   r   r   <module>rN      s)     %   	8	--V --r   