+
    9iM                     x    ^ RI t ^ RIt^ RIHtHt ^ RIHt ^ RIH	t	 ] P                  ! ]4      t ! R R]4      tR# )    N)AttentionMaskFusionAttention)helper)	OnnxModelc                   H   a a ] tR t^t oRtV3R lV 3R lltR tRtVtV ;t	# )FusionBartAttentionz7
Fuse Bart Attention subgraph into one Attention node.
c                2   < V ^8  d   QhRS[ RS[RS[RS[/# )   modelhidden_size	num_headsattention_mask)r   intr   )format__classdict__s   "l/var/www/html/photoedit/myenv/lib/python3.14/site-packages/onnxruntime/transformers/fusion_bart_attention.py__annotate__ FusionBartAttention.__annotate__   s9     H HH H 	H
 &H    c                (   < \         SV `  WW44       R # )N)super__init__)selfr   r   r   r   	__class__s   &&&&&r   r   FusionBartAttention.__init__   s     	YGr   c                   V P                   P                  V. RO. RO4      pVe
   Vw  ppppp	M\        P                  R4       R# . p
VP                   F<  pW9  d   K  W^ ,          P
                  ^ ,          8X  d   K+  V
P                  V4       K>  	  \        V
4      ^8w  d   R# V
^ ,          p W<,          pVP                  R9   d#   V P                   P                  V4      ^ ,          pVP
                   FJ  pV'       g   K  W.,          pV Uu. uF  pVP                  NK  	  ppVP                  R4      ^8  g   KH  Tp M	  V P                   P                  4       P                   Uu0 uF  pVP                  kK  	  ppV P                   P                  4       P
                   Uu0 uF  pVP                  kK  	  ppV P                   P                  V	. RO. RO4      pV P                   P                  V	. RO. R O4      pV P                   P                  V	. R!O. R"O4      pRRpp. RRpppVe   TpVw  ppppVVP
                  ^ ,          ,          pV Fo  p V P                  R8X  g   K  V P                   P                  V RR.^ ^ .4      p!V!e   V!R#,          P                  ^ ,          pVV P
                  ^ ,          ,          p M	  V F\  p VV P
                  ^ ,          ,          p"V" F0  p#V#P
                  ^ ,          V9   g   K  V#P
                  ^ ,          p M	  VR8w  g   K\   M	  MVe2   TpVw  p$ppppV$P                  ^ ,          pV$P
                  ^ ,          pMdV	P                  ^,          V9   d   V	P                  ^,          pM8Ve   TpVR#,          P                  ^ ,          pM\        P                  R4       R# VV9   d   TMRpVV9   d   TMRpV P                   P                  V	R	R.^ ^ .4      p%V P                   P                  V	. R$O. R%O4      p&. Rp(p'V%e	   V%w  p)p*T%p'M$V&e
   V&w  p)p(p*T&p'M\        P                  R
4       R# V P                   P                  V*. R&O. R'O4      p+V P                   P                  V*. R(O. R'O4      p,. p-V+e   T+p-V-w  p.p/p0p1p2M&V,e   T,p-V-w  p0p.p/p1p2M\        P                  R4       R# V P                   P                  V*. R)O. R*O4      p3V P                   P                  V*. R+O. R,O4      p4V P                   P                  V*. R-O. R"O4      p5V P                   P                  V*. R.O. R/O4      p6RRp8p7. RRp;p:p9V3e\   T3p9V9w  p<p=p;VV=P
                  ^ ,          ,          p>V> F1  p?V?P
                  ^ ,          V9   g   K  V?P
                  ^ ,          p8 EM	  EMV4e3   T4p9V9w  p)p@p<p=p;V@P                  ^ ,          p7V@P
                  ^ ,          p8EMVV*P                  ^,          ,          P                  ^ ,          V9   d8   VV*P                  ^,          ,          .p9V9^ ,          P                  ^ ,          p7EM7V5e   T5p9V9w  p)p<p=p;VV;P
                  ^ ,          ,          pV Fo  p V P                  R8X  g   K  V P                   P                  V RR.^ ^ .4      pAVAe   XAR#,          P                  ^ ,          p7VV P
                  ^ ,          ,          p M	  V F\  p VV P
                  ^ ,          ,          p"V" F0  p#V#P
                  ^ ,          V9   g   K  V#P
                  ^ ,          p8 M	  V8R8w  g   K\   M;	  M8V6e   T6p9V9R#,          P                  ^ ,          p7M\        P                  R4       R# V7V9   d   T7MRp7V8V9   d   T8MRp8V;Ee   V:Ef   V P                   P                  VP                  ^ ,          4      pBVBP                  ^ ,          pCVBP                  pDRpEV P                   P                  VE4      pFVFfI   V P!                  XEXDXC.\"        P$                  ! R.VC,          \&        P(                  ! VD4      R7      R7       V P                   P+                  R 4      pG\&        P,                  ! R XEV;P
                  ^ ,          .X=P                  .VG4      p:\/        V74      ;'       d$    \/        V4      ;'       d    V;RJ ;'       d    VRJ pHVH'       * ;'       dS    V2P                  ^ ,          V8H  ;'       d5    V;P                  ^ ,          V8H  ;'       d    VP                  ^ ,          V8H  pIXH'       * ;'       du    V2P                  ^ ,          V8H  ;'       dW    V;P                  ^ ,          VP                  ^ ,          8H  ;'       d(    V;P                  ^ ,          V2P                  ^ ,          8g  pJXI;'       d    V'V%8H  pKXI;'       d    V'V&8H  pLXJ;'       d    V'V%8H  pMXL;'       d    \/        V74      ;'       d    \/        V4      pNXH;'       d    V'V%8H  pOV'V&8H  pP. pQVP'       d   V P                   P                  V(R.^.4      pRV P                   P                  V(. R0O. R1O4      pSV P                   P                  V(. R2O. R3O4      pTV P                   P                  V(RR.^^ .4      pUVSe   XSpQM,XTe   XTpQM%XUe   XUpQMXRe   XRpQM\        P                  R4       R# \        XQ4      ^ 8  g   Q hXK'       g"   XL'       g   XM'       g   XN'       g
   XO'       Ed   TpVV P1                  V/4      w  pWpXVW^ 8:  g   XX^ 8:  g   XXXW,          ^ 8w  d   \        P                  R4       R# RpYXN'       g   XM'       g	   XO'       d   V P2                  '       d   T P5                  T2XM'       g	   XN'       d   T;MT7XM'       g	   XN'       d   TMTT1XM'       g	   XN'       d   T:MRXM'       g	   XN'       d   TMRXWXXXVP
                  ^ ,          XPXN'       d   T7MRXN'       d   TMRV8VR7      MRpYMLV P2                  pZRV n        V P7                  RV2V;VV1V:VXWXXVXVP
                  ^ ,          XPV7VV8VR7      pYVZV n        XYf   \        P                  R4       R# V P8                  P                  XY4       V P:                  V P<                  VYP                  &   V P>                  PA                  XVW.4       V P>                  PA                  V'4       XN'       g   XM'       g
   XO'       Edc   \        V-4      ^ 8  d)   V-R#,          P                  R8X  d   V-PC                  4        \        V94      ^ 8  d)   V9R#,          P                  R8X  d   V9PC                  4        \        V4      ^ 8  d)   VR#,          P                  R8X  d   VPC                  4        V PD                  '       d   \        V-4      ^ 8  d)   V-R#,          P                  R 8X  d   V-PC                  4        \        V94      ^ 8  d)   V9R#,          P                  R 8X  d   V9PC                  4        \        V4      ^ 8  d)   VR#,          P                  R 8X  d   VPC                  4        V P>                  PA                  V-4       V P>                  PA                  V94       V P>                  PA                  V4       RV n#        R# R# u upi u upi u upi )4AddMatMulReshape	TransposeNz(fuse_attention: failed to match qkv pathConcat z&fuse_attention: failed to match v pathSoftmaxz'fuse_attention: failed to match qk pathz&fuse_attention: failed to match q pathz&fuse_attention: failed to match k path
empty_biasg        )dtype)dimsvalsWhereSlicez*fuse_attention: failed to match mask nodesz9fuse_attention: failed to detect num_heads or hidden_size)q_matmulk_matmulv_matmulq_addk_addv_addr   r   outputunidirectionalpast_kpast_v	present_k	present_vF)
mask_indexr*   r+   r,   r-   r.   r/   r   r   first_inputr0   causalr2   r3   r4   r5   z+fuse_attention: failed to create fused nodeT)r   r   r   r    r   )   r9   r   r   r   >   r   Clip)r    r   r   r   )r9   r   r   N)r!   r    r   r   r   )r9   r9   r   r   N)r    r   r   r    )r9   r   r   r   )r#   r   r   )r   r   r   )r    r   Mulr   r   )r   r   r   r   r9   )r<   r    r   r   r   )r    r   r   )r9   r   r   )r    r!   r    r   r   )r9   r   r9   r   r   )r<   r    r   r   )r<   r    r   r   r    )r9   r   r   r   r   )r)   Expandr(   )r9   r   r9   )r)   	UnsqueezeGatherShaper   )r9   r
   r   r   r   )$r   match_parent_pathloggerdebuginputr0   appendlenop_typeget_childrencountgraphnameget_initializerr&   	data_typeadd_initializernparrayr   tensor_dtype_to_np_dtypecreate_node_name	make_nodeboolget_num_heads_and_hidden_sizeuse_multi_head_attentioncreate_multihead_attention_nodecreate_attention_nodenodes_to_addthis_graph_namenode_name_to_graph_namenodes_to_removeextendpop!disable_multi_head_attention_biasprune_graph)[r   normalize_nodeinput_name_to_nodesoutput_name_to_node	qkv_nodesadd_out
matmul_outreshape_qkvtranspose_qkv
matmul_qkvother_inputsinput_
root_inputskip_layernormr0   childrenchildchildren_typesnodegraph_input_namesgraph_output_namesv_nodes_past_or_presentv_nodes_with_pastv_nodes_past_only_oair3   r5   v_nodesadd_vmatmul_vtranspose_v	reshape_vstart_child_nodesstart_child_nodeconcat_v_nodesstart_grandchild_nodesstart_grandchild_nodeconcat_vqk_nodes_no_maskqk_nodes_with_maskqk_nodesadd_qk_	matmul_qk
q_nodes_hfq_nodes_oaiq_nodestranspose_q	reshape_qmul_qadd_qmatmul_qk_nodes_no_past_hfk_nodes_with_past_hfk_nodes_past_or_present_oaik_nodes_past_only_oair2   r4   k_nodesadd_kmatmul_ktranspose_k	reshape_ktranspose_k_nodestranspose_k_nodeconcat_kconcat_k_nodesadd_v_tensorbias_dimr%   empty_bias_nameempty_tensoradd_namethree_root_inputsone_root_inputtwo_root_inputsencoder_attentiondecoder_self_attentiondecoder_cross_attention decoder_self_attention_with_past!decoder_cross_attention_with_pastcausal_mask
mask_nodesmask_nodes_bartmask_nodes_whisper_hfmask_nodes_whisper_oai mask_nodes_whisper_oai_unit_testattention_last_noder   r   new_node%use_multi_head_attention_ground_truths[   &&&&                                                                                       r   fuseFusionBartAttention.fuse   s   JJ00?
	
    LLCD$**F01,,Q//' + |!!!_
	 -8 !!_4!ZZ44^DQGN$++F*2H9ABemmNB##H-2#
 , 48::3C3C3E3K3KL3K4TYY3KL48JJ4D4D4F4M4MN4MDdii4MN"&**">">5#

 !JJ88?

 !%

 < <<!

 	#%tT".-G8?5[)UH !4ELLO D$5 #++x7%)ZZ%A%A("K0A&N
 &1!/!3!9!9!!<(;<L<S<STU<V(W% %6 %6 )<=M=T=TUV=W)X&-C),33A6:LL$9$@$@$C	 .D ? %6 *'GBI?X{Iuh^^A&F *Ia $55%%a(F".+GR[&&q)FLLAB!%66B!*.@!@Ib	::77
YPXDY\]_`[ab!ZZ99*Fbdmnt&'+LAy'H+#5 Avy)HLLBCZZ11<


 jj22<

 ! G?F<[)UE8$!G?F<UKE8LLAB!ZZ99.

  $zz;;E 

 '+jj&B&B5'
#
 !%

 < <C!

 	#%tT)(G18.[)X !4I4D4DQ4G H$5 #**1-1CC 0 7 7 :I %6 "-*G>E;Q+y(^^A&F *I !34::1=ARR*9??1+=>?GQZ%%a(F(41G4;1QY !4HOOA4F G$5 #++x7%)ZZ%A%A("K0A&N
 &1!/!3!9!9!!<(;<L<S<STU<V(W% %6 %6 )<=M=T=TUV=W)X&-C),33A6:LL$9$@$@$C	 .D ? %6 #.+GR[&&q)FLLAB!%66B!*.@!@Ib	EM::55ekk!nEL#((+H **E*O::55oFL#$$#"3%("2&:Y:YZ_:`a	 %  zz2259H$$U_hooa>P,QT]TbTbScemnE LccT&\cch$>NccS[_cSc!! 0 0q!Z/0 0q!Z/0 0 q!Z/	 	 "! 7 7q!Z/7 7q!X^^A%667 7 q!X^^A%66	 	 +KKx;K/K!/!R!RH@R4R"1"R"RhBR6R+A+c+cd6l+c+cW[\bWc(,=,^,^(N^B^) "44
"jj::	O
 %)JJ$@$@,%!
 &*ZZ%A%A@&"
 04zz/K/K'"A0,
 %02
'33
1==
 ,,
IJz?Q&&& %&/00"-%)%G%G	%R"I{A~!1kI6MRS5SXYH/3JNo* 444! 88!)-DHhnt-DHhnt#'>Bbehl'>Bbehl"+$/299!<'2)Ivr)Ivr"+"+ 9 " % , 9=8U8U505-55#%%%' + *.55a8&!!''! 6 $ 1V-JK$$X.:>:N:ND((7  '')<m(XY  ''1 03JNoNow<!#(;(;x(GKKMw<!#(;(;x(GKKMw<!#(;(;x(GKKM9997|a'GBK,?,?5,H7|a'GBK,?,?5,H7|a'GBK,?,?5,H  ''0  ''0  ''0  $Dq 1Y C
 MNs   {%+{*({/)r`   rV   )
__name__
__module____qualname____firstlineno____doc__r   r   __static_attributes____classdictcell____classcell__)r   r   s   @@r   r   r      s"     H HV$ V$r   r   )loggingnumpyrO   fusion_attentionr   r   onnxr   
onnx_modelr   	getLoggerr   rB   r    r   r   <module>r      s4   
   ;   			8	$d$/ d$r   