
     Ti5                     f    S r SSKrSSKrSSKJr  SSKJr  SSK	J
r
Jr  S rS r " S S	5      rS
 rg)z
A one-layer Whisper decoder model test case, with inputs: audio_features.
This model contains one layer of self-attention and one layer of cross-attention.
This is an onnxscript version of the model.
    N)script)opset18)FLOATINT32c                 R  ^ ^^^^^^^^^	^
^^^^^^^^^^^^^^ [        5       S[        S   S[        S   S[        S   S[        S   S[        S   S	[        S   S
[        S   [        S   [        S   44U UUUUUUUUUUUUUUUUUU
U	UUUUU4S jj5       nUR                  5       nU$ )Ndecoder_input_ids   r
   encoder_hidden_states)r
       past_key_values_0_0)r
          @   past_key_values_0_1past_key_values_0_2past_key_values_0_3return)r
   r
     )r
   r   !   r   c           	        > [         R                  " U SSS9n[         R                  " USSS9n[         R                  " U5      n[         R                  " U SS/SS9n	[         R                  " TU	SS9n
[         R
                  " US5      n[         R                  " XS5      n[         R                  " US/5      n[         R                  " US/SS9n[         R                  " X5      n[         R                  " US/5      n[         R                  " TiUSS	9n[         R
                  " U
U5      n[         R
                  " US5      n[         R                  " US/SS9n[         R                  " S/USS9n[         R                  " S
U5      n[         R                  " SUS5      n[         R                  " USS/SS9n[         R                  " UU5      n[         R                  " USS9n[         R                  " UU5      n[         R                  " UTzTySSSS9n[         R                   " T~SS/S9n[         R"                  " UU5      n[         R
                  " UT}5      n[         R                  " US5      n [         R                  " US/S/S/SS9n![         R                  " U U!SS9n"[         R                   " U"/ SQS9n#[         R                   " TxSS/S9n$[         R"                  " UU$5      n%[         R                  " US/S/S/SS9n&[         R                  " U%U&SS9n'[         R                   " U'/ SQS9n([         R                   " TSS/S9n)[         R"                  " UU)5      n*[         R
                  " U*T5      n+[         R                  " US/S/S/SS9n,[         R                  " U+U,SS9n-[         R                   " U-/ SQS9n.[         R                  " UU(SS9n/[         R                  " UU.SS9n0[         R                   " U// SQS9n1[         R"                  " U#U15      n2[         R                  " USS/5      n3[         R                  " US/S/S/SS9n4[         R$                  " U45      n5[         R                  " U3U55      n6[         R&                  " S/S9n7[         R&                  " S/S9n8[         R                  " UU8SS9n9[         R&                  " S/S9n:[         R(                  " U6U7U9S/U:5      n;[         R
                  " U2U;5      n<[         R*                  " U<SS9n=[         R"                  " U=U05      n>[         R                   " U>/ SQS9n?[         R                  " US/S/SS9n@[         R                  " U?U@SS9nA[         R                   " T|SS/S9nB[         R"                  " UAUB5      nC[         R
                  " UCT{5      nD[         R
                  " UUD5      nE[         R                  " UETmTlSSSS9nF[         R                   " TqSS/S9nG[         R"                  " UFUG5      nH[         R
                  " UHTp5      nI[         R                  " UIS5      nJ[         R                  " US/S/S/SS9nK[         R                  " UJUKSS9nL[         R                   " UL/ SQS9nM[         R                   " U/ SQS9nN[         R"                  " UMUN5      nO[         R*                  " UOSS9nP[         R"                  " UPU5      nQ[         R                   " UQ/ SQS9nR[         R                  " US/S/SS9nS[         R                  " URUSSS9nT[         R                   " ToSS/S9nU[         R"                  " UTUU5      nV[         R
                  " UVTn5      nW[         R
                  " UEUW5      nX[         R                  " UXTwTvSSSS9nY[         R                   " TsSS/S9nZ[         R"                  " UYUZ5      n[[         R
                  " U[Tr5      n\[         R,                  " U\S5      n][         R.                  " U]5      n^[         R
                  " U^S5      n_[         R                  " SU_5      n`[         R                  " U\U`5      na[         R                   " TuSS/S9nb[         R"                  " UaUb5      nc[         R
                  " UcTt5      nd[         R
                  " UXUd5      ne[         R                  " UeTkTjSSSS9nf[         R                   " TSS/S9ng[         R"                  " UfUg5      nhUhU/U04$ )Nr
   r   )endstart      )	allowzero)axis)
batch_dimsgM)tog   >)
stash_typeepsilonr   )permg      ?r   r   )r   r   r
   r   )r   r
   r   r   )
value_intsr   gU?g      ?g      ?)r   ShapeSqueezeReshapeGatherAddRange	UnsqueezeConcatTileGatherNDExpandGreaterCastMulLayerNormalization	TransposeMatMulAbsConstantSliceSoftmaxDivErf)r   r   r   r   r   r   val_0val_1sym_size_int_42view	embeddingadd_7arange	unsqueezeval_16repeatval_22val_24add_15add_24val_28val_29fullarange_1view_1gtconvert_element_type_defaultmul_17
layer_normval_37val_38linearmul_43val_44view_2	transposeval_46linear_1val_49view_3transpose_1val_51val_52linear_2val_55view_4transpose_2catcat_1transpose_3matmulunsqueeze_4val_83val_85expand_1val_104val_106val_107val_111slice_12add_125softmaxmatmul_1transpose_4val_115view_5val_117val_118linear_3add_163layer_norm_1val_121val_122linear_4mul_125val_125view_6transpose_5transpose_6matmul_2	softmax_1matmul_3transpose_7val_129view_7val_131val_132linear_5add_232layer_norm_2val_135val_136linear_6val_138val_139val_141val_143geluval_144val_145linear_7add_261layer_norm_12val_457	linear_32decoder_embed_positions_weightdecoder_layer_norm_biasdecoder_layer_norm_weight-decoder_layers_0_encoder_attn_layer_norm_bias/decoder_layers_0_encoder_attn_layer_norm_weight+decoder_layers_0_encoder_attn_out_proj_bias-decoder_layers_0_encoder_attn_out_proj_weight)decoder_layers_0_encoder_attn_q_proj_bias+decoder_layers_0_encoder_attn_q_proj_weightdecoder_layers_0_fc1_biasdecoder_layers_0_fc1_weightdecoder_layers_0_fc2_biasdecoder_layers_0_fc2_weight&decoder_layers_0_final_layer_norm_bias(decoder_layers_0_final_layer_norm_weight(decoder_layers_0_self_attn_k_proj_weight*decoder_layers_0_self_attn_layer_norm_bias,decoder_layers_0_self_attn_layer_norm_weight(decoder_layers_0_self_attn_out_proj_bias*decoder_layers_0_self_attn_out_proj_weight&decoder_layers_0_self_attn_q_proj_bias(decoder_layers_0_self_attn_q_proj_weight&decoder_layers_0_self_attn_v_proj_bias(decoder_layers_0_self_attn_v_proj_weightproj_out_weights                                                                                                            j/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/onnxscript/rewriter/models/_whisper_decoder.py
main_graphmake_model.<locals>.main_graph-   s    /Qa@1qB!//%002q'QGNN?DqA	OQ/q9%%fqc2	s3i0""6B40!!"@&UVWY/UA&";V!4~~mV4==FA."aA>__Xv.'.||B1'=$T#?@//86)

 ""#KSTVWRXY
F3V%KLVU+sQC"A>1=%%f<@	""#KSTVWRXY>>*f5taS2$Q?6Q?''\B""#KSTVWRXY
F3;;v'MNtaS2$Q?6Q?''\Bnn0+BG2KbI'',?	;7''A7sRD2$Q?V$>>+v6""qc2""rd3//%A>""qc2==7GaS'J++fh///'3>>'51''|D..cU;gC##$NVWYZU[\..1;;w(PQ++fh/11;9)
 ##$OWXZ[V\]..w7;;w(QR++h...aS2$Q?'Q?''\B''(;,O>>+{;OOH26	>>)-@A''|D..cU;gC##$QYZ\]X^_..1;;w(ST++gx01142)
 ##$?q!fM..w7;;w(AB++h	2++g&++gs+++c7+{{8W-##$?q!fM..w/;;w(AB++gx022%#)
 ##O1a&ANN=':	#u$$    )r   r   r   to_model_proto)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   models   `````````````````````````  r   
make_modelr      s    6 XL% ;L%  %\2L% #<0	L%
 #<0L% #<0L% #<0L% 	kll
L% L% L% L% L%\ %%'ELr   c                  V   [         R                  R                  S5        [         R                  R                  SS5      R	                  [         R
                  5      n [         R                  R                  SS5      R	                  [         R
                  5      n[         R                  R                  S5      R	                  [         R
                  5      n[         R                  R                  S5      R	                  [         R
                  5      n[         R                  R                  SS5      R	                  [         R
                  5      n[         R                  R                  S5      R	                  [         R
                  5      n[         R                  R                  SS5      R	                  [         R
                  5      n[         R                  R                  SS5      R	                  [         R
                  5      n[         R                  R                  S5      R	                  [         R
                  5      n[         R                  R                  SS5      R	                  [         R
                  5      n	[         R                  R                  S5      R	                  [         R
                  5      n
[         R                  R                  S5      R	                  [         R
                  5      n[         R                  R                  S5      R	                  [         R
                  5      n[         R                  R                  SS5      R	                  [         R
                  5      n[         R                  R                  S5      R	                  [         R
                  5      n[         R                  R                  SS5      R	                  [         R
                  5      n[         R                  R                  S5      R	                  [         R
                  5      n[         R                  R                  S5      R	                  [         R
                  5      n[         R                  R                  S5      R	                  [         R
                  5      n[         R                  R                  SS5      R	                  [         R
                  5      n[         R                  R                  S5      R	                  [         R
                  5      n[         R                  R                  SS5      R	                  [         R
                  5      n[         R                  R                  S5      R	                  [         R
                  5      n[         R                  R                  S5      R	                  [         R
                  5      n[         R                  R                  S5      R	                  [         R
                  5      n[        U UUUUUUUUU	U
UUUUUUUUUUUUUU5      nU$ )N
   i  r   r   i   )nprandomseedrandastypefloat32r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   s                             r   make_model_with_random_weightsr      s   IINN2%'YY^^C%=%D%DRZZ%P"iinnUC077

CO3599>>#3F3M3Mbjj3Y0131D1K1KBJJ1W./1yy~~c3/G/N/Nrzz/Z,-/YY^^C-@-G-G

-S*/1yy~~c3/G/N/Nrzz/Z,/1yy~~c3/G/N/Nrzz/Z,-/YY^^C-@-G-G

-S*13S1I1P1PQSQ[Q[1\./1yy~~c/B/I/I"**/U,68iinnS6I6P6PQSQ[Q[6\346IINN34G4N4Nrzz4Z124))..c2J2Q2QRTR\R\2]/02		s0C0J0J2::0V-46IINN34L4S4STVT^T^4_124))..2E2L2LRZZ2X//1yy~~c/B/I/I"**/U,-/YY^^C-@-G-G

-S*"$))..s";"B"B2::"N "		t 4 ; ;BJJ G"$))..d";"B"B2::"N "		s 3 : :2:: F "		s 3 : :2:: F iinnS188D&420.00.207531530.#!#!!3E6 Lr   c                        \ rS rSrS rS rSrg)_WhisperDecoderTest   c                     [        U S5      (       d/  [        5       n[        R                  R	                  U5      nX l        U R
                  $ )N_onnx_model)hasattrr   irserdedeserialize_modelr   )selfmodel_protor   s      r   get_onnx_model"_WhisperDecoderTest.get_onnx_model   s=    t]++8:KHH..{;E$r   c                 r   [        U S5      (       Gd  [        R                  R                  S5        [        R                  R	                  SSS5      R                  [        R                  5      [        R                  R                  SSS5      R                  [        R                  5      [        R                  R                  SS	S
S5      R                  [        R                  5      [        R                  R                  SS	S
S5      R                  [        R                  5      [        R                  R                  SS	S
S5      R                  [        R                  5      [        R                  R                  SS	S
S5      R                  [        R                  5      S.nXl	        U R                  $ )N_ort_inputsr   r   i   r	   r
   r   r   r   r   r   )r   r   r   r   r   r   )
r   r   r   r   randintr   int32r   r   r   )r   inputss     r   get_ort_inputs"_WhisperDecoderTest.get_ort_inputs  s   t]++IINN2%'YY%6%6q%%H%O%OPRPXPX%Y)+4)E)L)LRZZ)X')yy~~aB'C'J'J2::'V')yy~~aB'C'J'J2::'V')yy~~aB'C'J'J2::'V')yy~~aB'C'J'J2::'VF  &r   )r   r   N)__name__
__module____qualname____firstlineno__r   r   __static_attributes__ r   r   r   r      s      r   r   c                      [        5       $ )N)r   r   r   r   whisper_decoder_testr     s      r   )__doc__numpyr   onnx_irr   
onnxscriptr   onnxscript.onnx_opsetr   onnxscript.onnx_typesr   r   r   r   r   r   r   r   r   <module>r      s7       ) .k\7t   .!r   