
    `i                       S SK r S SKrS SKrS SKrS SKJrJrJr  S SKrS SK	J
r
  \
R                  " \R                  5      \
R                  " S5      :  d   eSS jrS rS rS rS	 rS
 rSS jrS rS rS r " S S5      rS r\S:X  a  \" 5       r\" S\R8                  -   5        \R:                  (       a  \" S\R:                  -   5        \" S5        \R=                  \R>                  " \R8                  5      \R@                  \RB                  \RD                  \RF                  5      r$\R:                  (       a.  \$(       a&  \RJ                  " \$\R:                  5        \" S5        gggg)    N)helpernumpy_helpershape_inference)versionz1.5.0c                     U R                    Vs/ s H  o3R                  U:X  d  M  UPM     nnU(       a  [        R                  " US   5      $ U$ s  snf Nr   )	attributenamer   get_attribute_value)node	attr_namedefault_valueattrfounds        e/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/onnxruntime_tools/symbolic_shape_infer.pyget_attributer      sG    "nnGnd		Y0FTnEG))%(33 Hs
   AAc                 ~    [        U R                  S5      5      [        :X  a  [        X R                  S5      5      $ S $ )Nvalue)type
WhichOneofstrgetattrdims    r   get_dim_from_type_protor      s2    489P4QUX4X73w/0b^bb    c                     U R                   R                  R                   Vs/ s H  n[        U5      PM     sn$ s  snf N)tensor_typeshaper   r   )
type_protods     r   get_shape_from_type_protor#      s4    0:0F0F0L0L0P0PQ0P1#A&0PQQQs   ;c                     U  Vs/ s H-  oc  S O%[        U5      (       a  [        U5      O
[        U5      PM/     sn$ s  snf r   )
is_literalintr   )sympy_shapeis     r   get_shape_from_sympy_shaper)      s5    R]^R]QIDjmmCFQHR]^^^s   4<c                     [        U 5      [        [        R                  [        R                  [
        R                  4;   =(       d    [        U S5      =(       a    U R                  $ )N	is_number)	r   r&   npint64int32sympyIntegerhasattrr+   r   s    r   r%   r%   #   s?    9bhh%--@@qWSR]E^Epcfcpcpqr   c                 4    X:  a  X* :  d   eU S:  a  U $ X-   $ r    )axisranks     r   handle_negative_axisr6   '   s&    ;45=((194-$+-r   c                     U=(       d    / SQn[        U5      [        :w  a  U/nU R                   H!  nUR                  U;   d  M  UR                  s  $    g )N) onnxzai.onnx)r   listopset_importdomainr   )mpr<   opsets      r   	get_opsetr?   ,   sI    ..FF|t<<6!==  ! r   c                     [        U 5      [        :X  a  [        U 5      S:X  d   eU S   $ [        U 5      [        R                  :X  a  U R                  5       $ U $ N   r   )r   r:   lenr,   ndarrayitemxs    r   	as_scalarrH   6   sF    Aw$1v{{t	aBJJ	vvxr   c                     [        U 5      [        :X  a  U $ [        U 5      [        R                  :X  a  [        U 5      $ U(       a  U c  g U /$ r   )r   r:   r,   rD   )rG   	keep_nones     r   as_listrK   @   s<    Aw$	aBJJ	Aw	qys
r   c                 z    [        U 5      [        :X  a%  [        R                  " S5      nU  H  nX-  nM	     U$ U nU$ )NrB   )r   r:   r/   r0   )rG   r   vs      r   sympy_reduce_productrN   K   s?    Aw$a AIE  L Lr   c                      \ rS rSrS rSOS jrSOS jrS rS rS r	S r
S	 rS
 rS rS rS rS rSPS jrSOS jrS rS rS rS rSQS jrSRS jrS rSPS jrSSS jrS rS rS rS rS r S  r!S! r"S" r#S# r$S$ r%S% r&S& r'S' r(S( r)S) r*S* r+S+ r,S, r-S- r.S. r/S/ r0S0 r1S1 r2S2 r3S3 r4S4 r5S5 r6S6 r7S7 r8S8 r9S9 r:S: r;S; r<S< r=S= r>S> r?S? r@S@ rASA rBSB rCSC rDSD rESE rFSF rGSG rHSH rISI rJSQSJ jrKSSSK jrLSL rM\NSTSM j5       rOSNrPg)USymbolicShapeInferenceU   c           	      P   0 SU R                   _SU R                  _SU R                  _SU R                  _SU R                  _SU R
                  _SU R                  _SU R                  _S	U R                  _S
U R                  _SU R                  _SU R                   _SU R                  _SU R                   _SU R                   _SU R                  _SU R                  _0 SU R                  _SU R                  _SU R                  _SU R                   _SU R"                  _SU R$                  _SU R                  _SU R                   _SU R                   _SU R                   _SU R&                  _SU R(                  _SU R*                  _SU R,                  _S U R.                  _S!U R0                  _S"U R2                  _E0 S#U R4                  _S$U R                  _S%U R6                  _S&U R8                  _S'U R:                  _S(U R<                  _S)U R>                  _S*U R@                  _S+U RB                  _S,U RD                  _S-U RF                  _S.U R                   _S/U RH                  _S0U RJ                  _S1U RL                  _S2U R                   _S3U RN                  _EU RP                  U RR                  U RT                  U RV                  U RX                  U RZ                  U R\                  S4.EU l/        S5U l0        0 U l1        0 U l2        0 U l3        X l4        X0l5        X@l6        Xl7        g )6NAddArrayFeatureExtractorAveragePoolCastCategoryMapperCompressConcatConstantConstantOfShapeConvCumSumDivExpandEqualFloorGatherGatherElementsGatherNDGeluIfLoopMatMulMatMulInteger16MaxPoolMaxMinMulNonMaxSuppressionNonZeroOneHotPadRange
ReduceProdReshapeResizeRoundScanScatterElementsShapeSizeSliceSoftmaxCrossEntropyLossSplitSplitToSequenceSqueezeSubTileTopK	UnsqueezeWhereZipMap)	AttentionBiasGeluFastGelure   LayerNormalizationLongformerAttentionSkipLayerNormalizationT)8_infer_symbolic_compute_ops_infer_ArrayFeatureExtractor_infer_Pool_infer_Cast_infer_CategoryMapper_infer_Compress_infer_Concat_infer_Constant_infer_ConstantOfShape_infer_Conv_pass_on_shape_and_type_infer_Expand_infer_Gather_infer_GatherElements_infer_GatherND	_infer_If_infer_Loop_infer_MatMul_infer_MatMulInteger_infer_NonMaxSuppression_infer_NonZero_infer_OneHot
_infer_Pad_infer_Range_infer_ReduceProd_infer_Reshape_infer_Resize_infer_Scan_infer_ScatterElements_infer_Shape_infer_Size_infer_Slice_infer_SoftmaxCrossEntropyLoss_infer_Split_infer_SplitToSequence_infer_Squeeze_infer_Tile_infer_TopK_infer_Unsqueeze_infer_ZipMap_infer_Attention_infer_BiasGelu_infer_FastGelu_infer_Gelu_infer_LayerNormalization_infer_LongformerAttention_infer_SkipLayerNormalizationdispatcher_run_suggested_merge_symbolic_dims_input_symbols_auto_merge_guess_output_rank_verbose_int_max_)selfint_max
auto_mergeguess_output_rankverboses        r   __init__SymbolicShapeInference.__init__V   sB   <
433<
#T%F%F<
 4++<
 D$$	<

 d88<
 ,,<
 d((<
 ,,<
 t::<
 D$$<
 d22<
 433<
 d((<
 T55<
 T55<
  d((!<
" d88#<
$ ,,%<
& D00'<
( $..)<
* D$$+<
, d((-<
. t88/<
0 t''1<
2 4333<
4 4335<
6 4337<
8  !>!>9<
: t**;<
< d((=<
> 4???<
@ T&&A<
B $00C<
D t**E<
F d((G<
H T11I<
J D$$K<
L t::M<
N T&&O<
P D$$Q<
R T&&S<
T &t'J'JU<
V T&&W<
X t::Y<
Z t**[<
\ 433]<
^ D$$_<
` D$$a<
b ..c<
d T55e<
f d((g<
j ..,,,,$$"&"@"@#'#B#B&*&H&Hw<
z 	 "  %"3r   c                 4   [        U Vs/ s H<  n[        U5      [        :H  =(       a    X0R                  ;   =(       d    [	        U5      PM>     sn5      (       d   e[        U5      nU R                  R                  5        H.  u  pEXA;   d  M  UR                  U5        UR                  U5        M0     S nU H  n[	        U5      (       d  M  Un  O   Uc  U H  nX0R                  ;   d  M  Un  O   Uc7  U H1  n[        U R                  U   5      [        R                  :X  d  M/  Un  O   Uc  U R                  S:  a)  [        SR                  SR!                  U5      5      5        [#        U5      nU Vs/ s H  n[%        U5      PM     nnXxR'                  [)        U5      5         nUR                  U5        U H  nX6:X  a  M
  [	        U5      (       a*  [	        U5      (       a  [+        U5      [+        U5      :X  d   e[	        U5      (       a  [+        U5      OUU R                  U'   U R                  R                  5        H  u  pEXS:X  d  M  X`R                  U'   M     M     U(       a#  U R,                  (       a  U R/                  5         g g g s  snf s  snf )Nr   z9Potential unsafe merge between symbolic expressions: ({}),)allr   r   r   r%   setr   itemsremoveaddr   r/   Symbolr   printformatjoinr:   rC   indexminr&   r   _apply_suggested_merge)	r   symbolsapplyskrM   map_tosymbols_listlenss	            r   _add_suggested_merge+SymbolicShapeInference._add_suggested_merge   s0   \cd\cWXT!W^@-@-@(@RZPQ]R\cdeeeeg,))//1DA|q!A 2 A!}} 
 >+++F  >++A./5<<?F 
 >}}q QXXY\YaYabiYjkl=L$01LqCFLD1!**SY"78FNN6"A{&!!jmm6{c!f,,,6@6H6Hs6{fD!!!$--3356/5))!, 6  T%%'') &5S e8 2s   AJ5Jc                 
   U R                   (       d  g [        U R                  R                  R                  5      U(       a  / O([        U R                  R                  R
                  5      -    H  nUR                  R                  R                  R                   H`  nUR                  U R                   ;   d  M  U R                   UR                     n[        U5      (       a  [        U5      Ul        MZ  XCl
        Mb     M     g r   )r   r:   out_mp_graphinput
value_infor   r   r    r   	dim_paramr%   r&   	dim_value)r   graph_input_onlyr(   r"   rM   s        r   r   -SymbolicShapeInference._apply_suggested_merge   s    $$dll((../9I2tTXT`T`TfTfTqTqOrsAVV''--11;;$"7"77--akk:A!!}}&)!f&' 2 tr   c                    [         R                  " 5       U l        U R                  R                  U5        [	        U R                  R
                  R                   Vs/ s H  o"R                  U4PM     sn5      U l        [	        [        U R                  R
                  R                  5       Vs/ s H  o"R                  U4PM     sn5      U l        U R                  R                  [	        U R                  R
                  R                   Vs/ s HN  nUR                  [        R                  " UR                  UR                  [        UR                   5      5      4PMP     sn5      5        g s  snf s  snf s  snf r   )r9   
ModelProtor   CopyFromdictr   initializerr
   initializers_r:   r   	known_vi_updater   make_tensor_value_info	data_typedims)r   in_mpr(   s      r   _preprocess"SymbolicShapeInference._preprocess   s   (e$!8J8J8V8V"W8V1FFA;8V"WXD9K9K9Q9Q4RS4Rq{4RST<<--99;9a 66688dSTSYSYl[\9; <	= #XS;s   E00E5AE:c                    [        U Vs/ s H  n[        U5      [        :H  PM     sn5      (       d  U R                  (       a  [	        [        U5      5      nU Vs/ s H  n[        U5      PM     nn[        U5      S::  d   e[        U5      S:X  a]  UR                  S5      nU R                  S:  a(  [        SR                  US U X5S-   S  -   X5   5      5        U R                  USS9  X5   $ U R                  S:  a!  [        SR                  USS  US   5      5        US   $ g [        U Vs/ s H
  o"US   :H  PM     sn5      (       a  US   $ U Vs/ s H#  o"U R                  ;   a  U R                  U   OUPM%     nn[        U Vs/ s H
  o"US   :H  PM     sn5      (       a  US   U R                  ;   d   eUS   $ g s  snf s  snf s  snf s  snf s  snf )NrB   r   z$dim {} has been merged with value {}Fallow_broadcastz!dim {} has been mergd with dim {})r   r   r   r   r:   r   r%   sumr   r   r   r   _check_merged_dimsr   r   )r   r   r"   unique_dimsis_intint_dimmergeds          r   _merge_symbols%SymbolicShapeInference._merge_symbols   s   D1DqDGsND122"3t9o1<=A*Q-=6{a'''v;!#$ll1oG}}q(DKK'1K!4MM{Oce f++K+O&//}}q(AHHUVUWZefgZhij7Nd+dT!Wd+,,7NY]^Y]TU43H3H.H$''*aOY]^/1VAY/00!9 3 3333!93 2 > ,^/s   GG/G*G
Gc                    / n[        U5      n[        U5      n[        XE5      n[        U5       H  nXt:  a
  XS-
  U-
     OSnXu:  a
  X%S-
  U-
     OSn	US:X  d  X:X  a  U	n
OkU	S:X  a  Un
ObU R                  X/5      n
U
(       dI  U R                  (       a  U R                  X/SS9  O&[        S[        U5      -   S-   [        U	5      -   5        U
/U-   nM     U$ )NrB   Tr   zunsupported broadcast between  )rC   maxranger  r   r   r   r   )r   shape1shape2	new_shaperank1rank2new_rankr(   dim1dim2new_dims              r   _broadcast_shapes(SymbolicShapeInference._broadcast_shapes   s    	FFu$xA,-I6!)a-(1D,-I6!)a-(1DqyDL--tl; ''114,d1K>TJSPSVW[S\\] 	I-I# !$ r   c                     UR                   U   nX0R                  ;   a"  [        U R                  U   R                  5      $ X0R                  ;   d   e[        U R                  U   R                  5      $ r   )r   r   r#   r   r   r:   r   r   r   idxr
   s       r   
_get_shape!SymbolicShapeInference._get_shape  sa    zz#>>!,T^^D-A-F-FGG-----**405566r   c                 6    [        U R                  X5      5      $ r   )rC   r  )r   r   r  s      r   _get_shape_rank&SymbolicShapeInference._get_shape_rank  s    4??4-..r   c                    / nU R                  X5       Ht  n[        U5      [        :X  aE  UR                  UU R                  ;   a  U R                  U   O[
        R                  " USS95        M[  S U:w  d   eUR                  U5        Mv     U$ )NTinteger)r  r   r   appendr   r/   r   )r   r   r  r'   r"   s        r   _get_sympy_shape'SymbolicShapeInference._get_sympy_shape   s    +AAw#~""Q#'#6#6>74#6#6q#9<ALLTX<Y[ qy y""1% , r   c                     UR                   U   nX0R                  ;   d  X0R                  ;   d   eX0R                  ;   a  U R                  U   $ [        R                  " U R                  U   5      $ r   )r   sympy_data_r   r   to_arrayr  s       r   
_get_value!SymbolicShapeInference._get_value+  se    zz#'''43E3E+EEE)-1A1A)At%v|G\G\]a]o]opt]uGvvr   c                     U[        UR                  5      :  a  g UR                  U   nX0R                  ;   d  X0R                  ;   a  U R	                  X5      $ g r   )rC   r   r#  r   r%  r  s       r   _try_get_value%SymbolicShapeInference._try_get_value0  sK    #djj/!zz####t/A/A'A??4--r   c                    [        U5       H  u  p#[        U5      (       a  M  [        U5      [        :X  a  M,  [        U5      nX@R                  ;   a?  [        U R                  U   5      (       a  Me  U R
                  U R                  U      X'   M  [        U5      U R
                  ;  d  M  X0R
                  [        U5      '   M     g r   )	enumerater%   r   r   r   r   )r   new_sympy_shaper(   r  str_dims        r   _update_computed_dims,SymbolicShapeInference._update_computed_dims8  s    #O4JAg&&tG}/Cg,333!$"7"7"@AA )-)<)<T=R=RSZ=[)\O& w<4+>+>><C++CL9 5r   c                 ^   UR                   S;   nU(       d  [        R                  " U/SUR                   Vs/ s H  o3(       d  M  U R                  U   PM     snUR
                   Vs/ s H3  n[        R                  " U[        R                  R                  S 5      PM5     sn5      nU R                  R                  R                  U5        [        R                  " U R                  5      U l
        [        [!        UR
                  5      5       H  nUR
                  U   nU R"                  R                  R$                  R'                  5       nU(       d3  UR                  U R                  R                  R
                  U   5        OXgl        XpR                  U'   M     g s  snf s  snf )N)rf   rg   rw   r~   r   tmp)op_typer   
make_graphr   r   outputr   r9   TensorProto	UNDEFINEDtmp_mp_r   r   r   infer_shapesr  rC   r   r   r   r
   )r   r   
skip_inferr(   	tmp_graphi_oovis           r   _onnx_infer_single_node.SymbolicShapeInference._onnx_infer_single_nodeE  s9   \\%XX
 ))4::K:a 1q 1:K]a]h]hi]hXY..q$2B2B2L2LdS]hikI LL''	2*77EDLT[[)*CC A##..224BDLL..55c:; "NN1 +  Lis   
F%F%):F*c                 
   U R                   S:  a=  [        SR                  UR                  UR                  S   UR
                  5      5        [        [        UR                  5      [        UR                  5      -    Vs/ s H  oDR                  PM     sn5      n[        U R                  R                  5        Vs/ s H  ofU;  d  M
  UPM     sn5      n[        R                  " [        UR                  5      S[        UR                  5      U Vs/ s H  o@R                  U   PM     sn-   UR                   Vs/ s H=  n[        R                  " UR                  [         R"                  R$                  S 5      PM?     sn5      nUR                  R'                  U R(                  R*                  R                   Vs/ s H  oDR                  U;   d  M  UPM     sn5        UR                  R'                  UR                  5        U R,                  R*                  R/                  U5        [1        U R2                  U R4                  U R6                  U R                   5      n	Sn
U	R9                  U R,                  5        U R:                  R=                  5       U	l        U	R>                  (       a<  U	RA                  U RB                  R=                  5       5      n
U	R>                  (       a  M<  U	RE                  5         U(       a`  URG                  S5        UR                  R'                  U	R(                  R*                  R                  S [I        UR                  5       5        URG                  S5        UR                  R'                  U	R(                  R*                  R                  5        URG                  S5        URJ                  R'                  U	R(                  R*                  RJ                  5        URG                  S	5        UR                  R'                  U	R(                  R*                  R                  5        U	R(                  R*                  R                   Vs/ s H  n[M        URN                  5      PM     nn[        U VVs/ s H=  o(       d  M  U  H+  n[O        U5      [P        :X  d  M  XRR                  ;  d  M)  UPM-     M?     snn5      n0 nU H&  nXRR                  ;   d   eU	RR                  U   UU'   M(     U RR                  RU                  U5        U	$ s  snf s  snf s  snf s  snf s  snf s  snf s  snnf )
N   z6Inferencing subgraph of node {} with output({}...): {}r   r1  Fr   r4  r   r   )+r   r   r   r
   r4  r2  r   r:   r   r   r   keysr   r3  r   r   r9   r5  r6  extendr   r   r7  r   rP   r   r   r   r   r   copyr   _infer_implr#  _update_output_from_vi
ClearFieldrC   r   r#   r   r   r   r   )r   r   subgraphuse_node_inputr(   subgraph_inputsr
   subgraph_implicit_inputr:  symbolic_shape_inferenceall_shapes_inferredr<  subgraph_shapesr   r"   subgraph_new_symbolic_dimsnew_dimss                    r   _onnx_infer_subgraph+SymbolicShapeInference._onnx_infer_subgraph[  s   ==1JQQRVR[R[]a]h]hij]kRVR^R^` a tH4H4H/IDQYQ_Q_L`/`a/`!vv/`ab"%8K8K8M&m8M]lUlt8M&m"n%% ?V#W?V!NN1$5?V#WW^f^m^mn^mYZV**16643C3C3M3MtT^mnp	 	$$1C1C1O1O%u1OASYSY]tSta1O%uv$$X%9%9:##I.#9$--IYIY[_[r[r:>--$I # ,,T\\:484I4I4N4N4P 1&++":"F"FtGWGWG\G\G^"_ '+++ 779(NN!!":"B"B"H"H"N"NO_PSTXT^T^P_"`aH%7??EELLML)""#;#C#C#I#I#T#TUF#5==CCHHIF^FfFfFlFlFsFstFs4QVV<Fst%('k11Qa47c>QRSWjWjRjQaQk&m"+A?????2AA!DHQK , 	""8,''K b&m $Xn%u. uksI    T&=	T+
T+T0>AT5 T:T:$T?
U
U
8U
	
U
c                    [        [        UR                  5      5       Vs/ s H  o0R                  X5      PM     nn[	        U Vs/ s H  oUS LPM     sn5      (       a  [        U5       H  u  p5[        U5      [        R                  :w  a  M$  [        UR                  5      S:  a  S nOi[        UR                  5      S:X  a  [        UR                  5       5      nO6[        UR                  5      S:X  d   eU Vs/ s H  n[        U5      PM     nnXdU'   M     U Vs/ s H#  n[        U5      [        :X  a  [        U5      OSPM%     nn[        U5      n	U	S:  ae  U(       a^  [        U5       HO  u  p5Uc  M
  [        U5      [        :X  a*  [        U5      U	:  a  XY-  XC'   M4  [        U5      U	:X  d   eMG  U/U	-  XC'   MQ     U$ s  snf s  snf s  snf s  snf rA   )r  rC   r   r(  r   r+  r   r,   rD   r    r&   rE   r:   r  )
r   r   	broadcastr(   valuesrM   new_vvv
values_lenmax_lens
             r   _get_int_values&SymbolicShapeInference._get_int_values  s   8=c$**o8NO8N1%%d.8NOv.v!v.//!&)7bjj(qww<!# E\Q&MEqww<1,,,/01qSWqE1!q	 * AGG1Q4c!fQ6
Gj/a<I!&)97d?1v'$%K	"1v000!"gFI * 9 P. 2Gs   GG<G*Gc                    [        UR                  5      S:X  d   eU R                  USS9n[        U Vs/ s H  oDS LPM     sn5      (       a  U Vs/ s H  n[	        U5      [
        :H  PM     nn[        U5      nU(       a9  [        U6  Vs/ s H
  or" U5      PM     snU R                  UR                  S   '   g U" U5      U R                  UR                  S   '   g g s  snf s  snf s  snf )NrB   T)rT  r   )	rC   r4  rZ  r   r   r:   anyzipr#  )r   r   op_funcrU  rM   is_listrK   vss           r   _compute_on_sympy_data-SymbolicShapeInference._compute_on_sympy_data  s    4;;1$$$%%dd%;v.v!v.//0671tAw$G7'lGJMv,3W,BGBK,3W  Q03:6?  Q0 0.7 4Xs   CC$C)c                     [        UR                  5      S:X  d  UR                  S:X  d   eU R                  US 5        g )NrB   rt   c                     U S   $ r   r3   rF   s    r   <lambda><SymbolicShapeInference._pass_on_sympy_data.<locals>.<lambda>  s    AaDr   )rC   r   r2  rb  r   r   s     r   _pass_on_sympy_data*SymbolicShapeInference._pass_on_sympy_data  s3    4::!#t||y'@@@##D.9r   c           
      4   U R                   UR                  S      nUR                  [        R                  " UR                  S   U R                   UR
                  S      R                  R                  R                  U R                  US5      5      5        g r   )
r   r4  r   r   r   r   r   r   	elem_typer  )r   r   r=  s      r   r   .SymbolicShapeInference._pass_on_shape_and_type  sr    ^^DKKN+
))$++a.$..TU:W:\:\:h:h:r:r*.//$*BD	Er   c                    SR                  X5      nX0R                  ;   aD  U R                  U   n[        U5      (       a!  [        R                  " [        U5      5      nU$ UnU$ [        R                  " USS9U R                  U'   U$ )Nz{}_d{}Tr  )r   r   r%   r/   r0   r&   r   r   )r   prefixr   r  rM   s        r   _new_symbolic_dim(SymbolicShapeInference._new_symbolic_dim  s    //&.+++%%g.A/9!}}emmCF+G  CDG  ,1<<+ND(r   c                     U R                  SR                  UR                  [        U R                  R
                  R                  5      R                  U5      U5      U5      $ )Nz	{}{}_o{}_)rp  r   r2  r:   r   r   r   r   )r   r   out_idxr   s       r   _new_symbolic_dim_from_output4SymbolicShapeInference._new_symbolic_dim_from_output  sT    %%t||#DLL$6$6$;$;<BB4H'STWY 	Yr   c                 b    [        U5       Vs/ s H  o@R                  X#U5      PM     sn$ s  snf r   )r  rt  )r   r5   r   rs  r(   s        r   _new_symbolic_shape*SymbolicShapeInference._new_symbolic_shape  s*    NSTXkZk224!DkZZZs   ,c           
         U R                  US5      n[        UR                  5      S:  a.  U R                  US5      n[        U5      S-
  nX4* S  nUS   US'   OS n[        US5      n[        U5      n[        U5      US-   :X  d   eX$* S   Vs/ s H  n[	        U5      (       + PM     nn[        U5      (       d  [        U R                  UR                  S      R                  5      n[        U5      S:  aI  [        U5      [        U5      :X  d   eX* S   V	s/ s H  n	[        R                  " U	5      PM     sn	X$* S & U$ [        USS/U-  5      n
[        USS/U-  5      n[        XZ5       VV	s/ s H  u  pUS-
  U	-  S-   PM     nnn	[        US5      nUc  S/SU-  -  n[        USS	5      R                  S
5      nUS:w  a}  US:w  aw   [        X$* S  U5       V	Vs/ s H  u  n	n[        R                  " U	U5      PM     nn	n[        XU5       VVVs/ s H!  u  nnn[        SUS:X  a  UU-
  OUU-
  5      PM#     nnnnOMUS:X  a  / nODS/U-  nO=[        U5      SU-  :X  d   e[        US U XS  5       VVs/ s H  u  nnUU-   PM     nnn[        USS5      n[#        U5       Ha  nX$* U-      n[        U5      S:  a  UUU   -   nU(       a!  [        R$                  " UX   -
  X   -  5      nOUX   -
  X   -  nUS-   X$* U-   '   Mc     U$ s  snf s  sn	f s  sn	nf s  snn	f s  snnnf ! [          a7    [        X5       VVs/ s H  u  nn[        SUU-
  5      PM     Os  snnf nnn Nf = fs  snnf )Nr   rB   rA  kernel_shape	dilationsstridespadsauto_pads   NOTSETzutf-8VALIDNOTSET	ceil_mode)r   rC   r   r   r%   r]  r#   r   r4  r   r/   r0   r^  decodeModr  	TypeErrorr  ceiling)r   r   r'   W_shaper5   rz  r(   is_symbolic_dimsr    r"   r{  r|  r   effective_kernel_shaper}  r~  r   residualr
total_padsp1p2r  effective_input_sizestrided_kernel_positionss                            r   _compute_conv_pool_shape/SymbolicShapeInference._compute_conv_pool_shape  s   ++D!4tzz?Q++D!4Gw<!#D"56?L$QZKNG(~>L|$D;4!8+++ 8C567JK7J!
1-7JK#$$-dnnT[[^.L.Q.QRE5zA~;'3u:555AFuv&OAu}}Q'7&OEF#""!$aS4Z@	i!t<>A,>Z![>Zda1q5A+/>Z![T6*<3!d(#D$T:yAHHQH7"x8';$<?EF@SU\<]^<]DAq		!Q<]H^ (++AH'U"'UGAq! A!q&Aq1u>'U  "J W$
S4Z
t9D(((03D$Ke0MN0Mfb""r'0MJN!$Q7	tA#.uqy#9 :"';jm'K$+0==),B,EES,U( -ACYC\,\ahak+k(%=%AK	"  [ L 'P
 "\  _" ! $>ABX>b "$>bda#a!a%/>b "$J "$J$ OsT   L L1LL+ $LL+ (L$=L+ :M/L+ +M,M 
M,+M,c                     U(       a3  U Vs/ s H&  n[        U5      (       a  [        U5      S::  a  M$  UPM(     nn[        U Vs/ s H
  o3US   :H  PM     sn5      (       d  U R                  USS9  g g s  snf s  snf )NrB   r   Tr  )r%   r&   r   r   )r   r   r   r"   s       r   r   )SymbolicShapeInference._check_merged_dims  sl    #Kt!JqMMc!fkAtDK$/$QaL$/00%%d$%7 1 L/s   #A3A3A8Nc                    U R                  US5      nU R                  US5      n[        U5      n[        U5      nSnSnUS:  a  US:  d   eUS:X  a	  US:X  a  / n	OMUS:X  a  SnUS U US   /-   n	O8US:X  a  SnUS U n	O*SnSnU R                  US S US S 5      US   /-   US   /-   n	U R                  X7   XH   /SS9  Uc:  U R                  UR
                  S      R                  R                  R                  nU R                  UR                  S      n
U
R                  [        R                  " UR                  S   X)5      5        g )Nr   rB   Fr   )r  rC   r  r   r   r   r   r   rl  r4  r   r   r   )r   r   output_dtype	lhs_shape	rhs_shapelhs_rankrhs_ranklhs_reduce_dimrhs_reduce_dimr  r=  s              r   _compute_matmul_shape,SymbolicShapeInference._compute_matmul_shape  sh   OOD!,	OOD!,	y>y>!|1,,q=X]I]N!/>2im_DI]N!/>2INN..y"~y"~NR[\^R_Q``dmnpdqcrrI!:I<U Vhmn>>$**Q-8==IISSL^^DKKN+
F11$++a.,Z[r   c           	      h   U R                  US5      nU R                  US5      nU R                  UR                  S      nUR                  [        R
                  " UR                  S   U R                  UR                  S      R                  R                  R                  US S U-   5      5        g Nr   rB   r  
r  r   r4  r   r   r   r   r   r   rl  )r   r   
data_shapeindices_shaper=  s        r   r   3SymbolicShapeInference._infer_ArrayFeatureExtractor/  s    __T1-
a0^^DKKN+
))$++a.$..TU:W:\:\:h:h:r:r*4Sb/M*IK	Lr   c           
         ^  S S S S U 4S jU 4S jS S S	 S
.	nUR                   U;   d   eT R                  XUR                      5        g )Nc                     U S   U S   -   $ Nr   rB   r3   ls    r   rf  DSymbolicShapeInference._infer_symbolic_compute_ops.<locals>.<lambda>:      adQqTkr   c                     U S   U S   -  $ r  r3   r  s    r   rf  r  <      adadlr   c                     U S   U S   :H  $ r  r3   r  s    r   rf  r  >  r  r   c                 4    [         R                  " U S   5      $ r   )r/   floorr  s    r   rf  r  @  s    ekk!A$'r   c                   > [        U S   5      (       a"  [        U S   5      TR                  * :  a  U S   $ [        U S   5      (       a"  [        U S   5      TR                  * :  a  U S   $ [        R                  " U S   U S   5      $ r  )r%   r&   r   r/   rk   r  r   s    r   rf  r  B  s    j1..3qt9~3Mad a!%%#ad)t}}n*DQqTaJO))TUVWTXZ[\]Z^J_ar   c                   > [        U S   5      (       a!  [        U S   5      TR                  :  a  U S   $ [        U S   5      (       a!  [        U S   5      TR                  :  a  U S   $ [        R                  " U S   U S   5      $ r  )r%   r&   r   r/   rl   r  s    r   rf  r  E  s    j1..3qt9t}}3Lad `!%%#ad)dmm*CQqT`INSTUVSWYZ[\Y]I^`r   c                     U S   U S   -  $ r  r3   r  s    r   rf  r  H  r  r   c                     U S   U S   -
  $ r  r3   r  s    r   rf  r  J  r  r   c                 *    U S   (       a  U S   $ U S   $ Nr   rB   rA  r3   r  s    r   rf  r  L  s    adad,!,r   )	rS   r^   r`   ra   rk   rl   rm   r   r   )r2  rb  )r   r   funcss   `  r   r   2SymbolicShapeInference._infer_symbolic_compute_ops7  sZ     """'a` "!,)
, ||u$$$##D*=>r   c                 &    U R                  U5        g r   ri  rh  s     r   r   "SymbolicShapeInference._infer_CastQ        &r   c           
         U R                   UR                  S      R                  R                  R                  nU[
        R                  R                  :X  a  [
        R                  R                  nO[
        R                  R                  nU R                   UR                  S      nUR                  [        R                  " UR                  S   X0R                  US5      5      5        g r   )r   r   r   r   rl  r9   r5  STRINGINT64r4  r   r   r   r  )r   r   
input_typeoutput_typer=  s        r   r   ,SymbolicShapeInference._infer_CategoryMapperT  s    ^^DJJqM277CCMM
))000**00K**11K^^DKKN+
F11$++a.+_cefOghir   c                    U R                  US5      nU R                  U5      n[        US5      nUS :X  a  U/nOUnX5[        U[	        U5      5      '   U R
                  UR                  S      nUR                  [        R                  " UR                  S   U R
                  UR                  S      R                  R                  R                  U5      5        g )Nr   r4   )r  rt  r   r6   rC   r   r4  r   r   r   r   r   r   rl  )r   r   input_shapecompress_lenr4   output_shaper=  s          r   r   &SymbolicShapeInference._infer_Compress]  s    oodA.99$?T6*4<(>L&LIU-dC4DEF^^DKKN+
))$++a.$..TU:W:\:\:h:h:r:r*68	9r   c           	         [        UR                   Vs/ s H  o"U R                  ;   PM     sn5      (       a  U R                  U5      n[	        U Vs/ s H  oDS LPM     sn5      (       a  S[        US5      :X  d   e/ U R                  UR                  S   '   [        [        UR                  5      5       Hr  nX2   n[        U5      [        :X  a-  U R                  UR                  S      R                  U5        MG  U R                  UR                  S      R                  U5        Mt     U R                  US5      n[        [        US5      [        U5      5      n[        S[        UR                  5      5       H(  nU R                  X5      n	U	(       d  M  Xg   X   -   Xg'   M*     U R                  U5        [        [        U5      5       H  n
X:X  a  M
  [        [        UR                  5      5       Vs/ s H.  oR!                  X5      (       d  M  U R!                  X5      U
   PM0     nn[	        U V
s/ s H
  oUS   :H  PM     sn
5      (       a  M  U R#                  U5      n[        U5      [$        :X  a  U(       a  U R&                  U   OS UW
'   M  XW
'   M     U R(                  UR                  S      nUR+                  [,        R.                  " UR                  S   U R(                  UR                  S      R                  R0                  R2                  [5        U5      5      5        g s  snf s  snf s  snf s  sn
f Nr   r4   rB   )r]  r   r#  rZ  r   r   r4  r  rC   r   r:   rC  r  r   r6   r.  r  r  r   r   r   r   r   r   r   rl  r)   )r   r   r(   rU  rM   r   r'   r4   i_idxr  r"   r   r  r=  s                 r   r   $SymbolicShapeInference._infer_Concatm  s   tzz:z!T%%%z:;;))$/F626aTM6233M$777735  Q0s4::/A"IEE{d*((Q8??F((Q8??F 0 ++D!4#M$$?[AQR1c$**o.E//<K{$/$58I$I! / 	"";/s;'(AyAFs4::AWxAW[j[jko[w3DOOD03AWDx$/$QaL$/00((.FF|s"@F!4!4V!<DA!'A ) ^^DKKN+
))$++a.$..TU:W:\:\:h:h:r:r*D[*QS	TA ;2* y/s   L2L78L<L<8M
c                 |    [        US5      n[        R                  " U5      U R                  UR                  S   '   g )Nr   r   )r   r   r$  r#  r4  )r   r   ts      r   r   &SymbolicShapeInference._infer_Constant  s1    $(+7+@+@+CQ(r   c           	         U R                  U5      S   nU R                  UR                  S      nUGb  [        U5      [        :w  a  U/nU R                  U5        UR                  R                  R                  [        R                  R                  :X  a  [        U Vs/ s H  n[        U5      PM     sn5      (       ay  [        R                  " U Vs/ s H  n[        U5      PM     sn[        R                   S9["        R$                  " ['        USS5      5      -  U R(                  UR                  S   '   O%U R+                  U R-                  US5      S   U5      nUR/                  [0        R2                  " UR                  S   UR                  R                  R                  [5        U5      5      5        g s  snf s  snf )Nr   )dtyper   )rZ  r   r4  r   r:   r.  r   rl  r9   r5  r  r   r%   r,   onesr&   r-   r   r$  r   r#  rw  r  r   r   r   r)   )r   r   r'   r=  rG   s        r   r   -SymbolicShapeInference._infer_ConstantOfShape  sw   **403^^DKKN+"K D(*m&&{3ww"",,0@0@0F0FF3grOsgrbcPZ[\P]grOsKtKt3577)+) V)+24((4<>J>S>STabfhoqrTs>t4u  Q0 224??43KA3NPTUK
))$++a."'':M:M:W:W*D[*QS	T Pt+s   !F=Gc           	      6   U R                  U5      nU R                  U5        U R                  UR                  S      nUR	                  [
        R                  " UR                  S   UR                  R                  R                  [        U5      5      5        g r   )r  r.  r   r4  r   r   r   r   r   rl  r)   )r   r   r'   r=  s       r   r   "SymbolicShapeInference._infer_Conv  sv    33D9"";/^^DKKN+
))$++a."'':M:M:W:W*D[*QS	Tr   c                    U R                  US5      nUb  U R                  U5        U R                  US5      nU R                  U[	        U5      5      nU R
                  UR                  S      nUR                  [        R                  " UR                  S   U R
                  UR                  S      R                  R                  R                  U5      5        g g rA   )r(  r.  r  r  r)   r   r4  r   r   r   r   r   r   rl  )r   r   expand_to_shaper    r  r=  s         r   r   $SymbolicShapeInference._infer_Expand  s    --dA6&&&7OOD!,E..u6PQ`6abIA/BKK--dkk!ndnnTZZXY]>[>`>`>l>l>v>v.79: 'r   c           
      
   U R                  US5      n[        [        USS5      [        U5      5      nU R                  US5      nU R                  UR
                  S      nUR                  [        R                  " UR
                  S   UR                  R                  R                  US U U-   X#S-   S  -   5      5        UR                  S   U R                  ;   Ga   [        U5      S:X  Ga  S[        USS5      :X  a  U R                  US5      nU R                  UR                  S      n[        U5      [        :X  a  [        U5      [         R"                  :X  aR  [        UR$                  5      S:X  a9  U Vs/ s H  o['        U5         PM     snU R                  UR
                  S   '   g U['        U5         U R                  UR
                  S   '   g US:X  d   eXpR                  UR
                  S   '   g g g g s  snf r  )r  r6   r   rC   r   r4  r   r   r   r   r   rl  r   r#  r%  r:   r,   rD   r    r&   )	r   r   r  r4   r  r=  r  datar(   s	            r   r   $SymbolicShapeInference._infer_Gather  s   __T1-
#M$$BC
OTa0^^DKKN+
))$++a."'':M:M:W:W*4Ud*;m*Kj`aYaYbNc*ce	f ::a=D,,,ZA1E!}]aciklOmJm//$*C##DJJqM2DDzT!9

*s399~/BNQ7RcSVc7RD$$T[[^47;CH~D$$T[[^4axx37  Q0 Kn1E,
 8Ss   ;H c                 8   U R                  US5      nU R                  UR                  S      nUR                  [        R
                  " UR                  S   U R                  UR                  S      R                  R                  R                  U5      5        g rA   r  )r   r   r  r=  s       r   r   ,SymbolicShapeInference._infer_GatherElements  su    a0^^DKKN+
))$++a.$..TU:W:\:\:h:h:r:r*79	:r   c                    U R                  US5      n[        U5      nU R                  US5      n[        U5      nUS   n[        U5      (       a  Xc::  d   eUS S X&S  -   nU R                  UR                  S      nUR                  [        R                  " UR                  S   U R                  UR                  S      R                  R                  R                  U5      5        g r  )r  rC   r%   r   r4  r   r   r   r   r   r   rl  )	r   r   r  	data_rankr  indices_ranklast_index_dimensionr  r=  s	            r   r   &SymbolicShapeInference._infer_GatherND  s    __T1-

O	a0=),R0.//4H4UUU!#2&4I)JJ	^^DKKN+
))$++a.$..TU:W:\:\:h:h:r:r*35	6r   c           
      @   [        US5      [        US5      /nU R                  US5      nUb>  [        U5      S:  a  US   R                  US   5        OUS   R                  US   5        [	        U5       GH  u  pEU R                  XSS9n[        [        UR                  5      5       GHd  nU R                  UR                  U      nUS:X  a3  UR                  UR                  U   5        UR                  U   Ul
        O[        [        UR                  R                  R                  R                   UR                  U   R                  R                  R                  R                   5       V	V
s/ s H	  u  pX:H  PM     sn
n	5      (       d   eUc  M  XCS:  a  SOS:X  d  M  UR                  U   R                  UR"                  ;   d  GM'  UR"                  UR                  U   R                     U R"                  UR                  '   GMg     GM     g s  sn
n	f )Nthen_branchelse_branchr   rB   F)rI  )r   r(  rH   r   r+  rQ  r  rC   r4  r   r
   r   r^  r   r   r    r   r#  )r   r   	subgraphscondi_subrH  subgraph_inferi_outr=  d1d2s              r   r    SymbolicShapeInference._infer_If  s   "47t]9[\	""4+"!%%il3!%%il3(3OE!66tV[6\Ns4;;/0^^DKK$67A:KK 67"kk%0BG/22773F3F3L3L3P3P3;??53I3N3N3Z3Z3`3`3d3d0f 0fVR 0f     
 #ax!Q(Gu-22n6P6PP4B4N4Nx_dOeOjOj4k((1 1  4 s   5Hc                    [        US5      n[        UR                  5      [        UR                  5      :X  d   e[        UR                  5       HB  u  p4UR                  nUR                  U R                  UR                  U      5        XTl        MD     U R                  X5        U R                  U5      n[        UR                  5      S-
  n[        [        UR                  5      5       GH  nU R                  UR                  U      nUR                  UR                  US-      5        X7:  a  UR                  US-      R                  R                  R                  R                  n	UR                  R                  R                  R                  S5        UR                  R                  R                  R                  n
XjR!                  5       l        U
R%                  ['        U	5      5        UR                  U   Ul        GM     g )NbodyrA  rB   r   )r   rC   r   r+  r
   r   r   rQ  rt  r  r4  r   r   r    r   rG  r   r   rC  r:   )r   r   rH  r(   sisubgraph_nameloop_iter_dimnum_loop_carriedr=  subgraph_vi_dimvi_dims              r   r   "SymbolicShapeInference._infer_Loop  s|    v.8>>"c$**o555x~~.EAGGMKKtzz!}56#G / 	!!$1::4@tzz?Q.s4;;'(AA/BKKA./$"*//!a%"8"="="I"I"O"O"S"S##))44U;,,2266)6

&d?34kk!nBG )r   c                 &    U R                  U5        g r   )r  rh  s     r   r   $SymbolicShapeInference._infer_MatMul  s    ""4(r   c                 X    U R                  U[        R                  R                  5        g r   )r  r9   r5  INT32rh  s     r   r   +SymbolicShapeInference._infer_MatMulInteger  s    ""4)9)9)?)?@r   c                     U R                  U5      nU R                  UR                  S      nUR                  [        R
                  " UR                  S   [        R                  R                  US/5      5        g )Nr      )	rt  r   r4  r   r   r   r9   r5  r  )r   r   selectedr=  s       r   r   /SymbolicShapeInference._infer_NonMaxSuppression  s^    55d;^^DKKN+
F11$++a.$BRBRBXBX[cefZghir   c                 ,   U R                  US5      nU R                  USS5      nU R                  UR                  S      nUR	                  [
        R                  " UR                  S   UR                  R                  R                  X#/5      5        g r  )
r  rt  r   r4  r   r   r   r   r   rl  )r   r   
input_ranknz_lenr=  s        r   r   %SymbolicShapeInference._infer_NonZero$  su    ))$2
33D!Q?^^DKKN+
F11$++a."''BUBUB_B_blauvwr   c                    U R                  US5      nU R                  US5      n[        USS5      n[        U[	        U5      S-   5      n[        US U [        U5      (       d  U R                  U5      OU/-   X$S  -   5      nU R                  UR                  S      nUR                  [        R                  " UR                  S   U R                  UR                  S      R                  R                  R                   U5      5        g )Nr   rB   r4   r  rA  )r   r(  r   r6   rC   r)   r%   rt  r   r4  r   r   r   r   r   r   rl  )r   r   r'   depthr4   r  r=  s          r   r   $SymbolicShapeInference._infer_OneHot+  s    ++D!4##D!,T62.#D#k*:Q*>?.R\]bRcRc$"D"DT"Jin!oo 	 ^^DKKN+
))$++a.$..TU:W:\:\:h:h:r:r*35	6r   c           	         [        U R                  5      S::  a  [        US5      nOU R                  US5      nU R                  UR
                  S      n[        UR                  5      n[        U5      S:X  d  S U;   a  U R                  US5      n[        U5      nUbS  [        U5      SU-  :X  d   e[        XRS U X&S  5       VVV	s/ s H  u  pxoU-   U	-   PM     n
nnn	U R                  U
5        OU R                  Xa5      n
U R                  UR                  S      R                  R                  R                  nUR!                  ["        R$                  " UR
                  S   U['        U
5      5      5        g g s  sn	nnf )N
   r}  rB   r   rA  )r?   r   r   r(  r   r4  r#   r   rC   r   r^  r.  rw  r   r   rl  r   r   r   r)   )r   r   r}  r=  r  r'   r5   r"   pad_uppad_downr,  	output_tps               r   r   !SymbolicShapeInference._infer_Pad8  sc   T\\"b( v.D&&tQ/D^^DKKN+09|!T\%9//a8K{#D4yAH,,,EH[`\`VacghmcnEo#Eo.AaJ)Eo   # **?; #'":":4"Ftzz!}5::FFPPIKK--dkk!niIcdsItuw &:
#s   E<c           
      8   U R                  U5      nU R                  U5        UR                   Hh  nU(       d  M  U R                  U   nUR	                  [
        R                  " X4R                  R                  R                  [        U5      5      5        Mj     g r   )r  r.  r4  r   r   r   r   r   r   rl  r)   )r   r   r'   r<  r=  s        r   r   "SymbolicShapeInference._infer_PoolP  sx    33D9"";/A"BKK--a1D1D1N1N.H.UWX	 r   c           	         U R                   UR                  S      nU R                  U5      n[        U Vs/ s H  oDS LPM     sn5      (       a\  [	        US   5      n[	        US   5      n[	        US   5      n[
        R                  " [
        R                  " Xe-
  U-  5      S5      /nO!U R                  U5      n	U R                  U	   /nU R                  U5        UR                  [        R                  " UR                  S   U R                   UR                  S      R                  R                   R"                  [%        U5      5      5        g s  snf r  )r   r4  rZ  r   rH   r/   rk   r  rt  r   r.  r   r   r   r   r   r   rl  r)   )
r   r   r=  
input_datar(   startlimitdeltar,  r  s
             r   r   #SymbolicShapeInference._infer_Range[  s   ^^DKKN+))$/
z2z!z233jm,Ejm,Ejm,E$yy7N)OQRSTO88>G#227;<O""?3
))$++a.$..TU:W:\:\:h:h:r:r*D_*UW	X 3s   Ec                     [        US5      n[        US5      nUS:X  aF  US/:X  a>  U R                  U5      S   nUb&  [        U5      U R                  UR                  S   '   g g g g )Naxeskeepdimsr   )r   rZ  rN   r#  r4  )r   r   r  	keep_dimsr  s        r   r   (SymbolicShapeInference._infer_ReduceProdk  sm    T6*!$
3	>dqck''-a0D3G3M  Q0   *>r   c                    U R                  US5      nU R                  UR                  S      nUc  U R                  US5      n[	        U5      S:X  d   eUS   n[        U5      (       d   eUR                  [        R                  " UR                  S   UR                  R                  R                  [        U R                  XQ5      5      5      5        GOgU R                  US5      nU R                  US5      n[        S5      nU H  n	X-  nM	     / n
Sn[        S5      n[!        U5       H|  u  p[        U	5      ["        R$                  :X  a  U
R'                  U	5        O2U	S:X  a  U
R'                  X}   5        XU   -  nOU
R'                  U	5        U	S:X  a  UnMp  U	S:w  d  Mx  X-  nM~     U
R)                  S5      S:  d   eSU
;   a  X-  nXU'   U R+                  U
5        UR                  [        R                  " UR                  S   UR                  R                  R                  [        U
5      5      5        U R-                  U5        g )NrB   r   r  rA  )r(  r   r4  r  rC   r%   r   r   r   r   r   rl  r)   rw  r   r&   r+  r/   r   r  countr.  ri  )r   r   shape_valuer=  shape_shape
shape_rankr  input_sympy_shapetotalr"   r,  deferred_dim_idxnon_deferred_sizer(   r  s                  r   r   %SymbolicShapeInference._infer_Reshapes  s    ))$2^^DKKN+//$2K{#q((($QJj))))KK--dkk!nbgg>Q>Q>[>[.HIaIablIs.tvw //$2K $ 5 5dA >FE&	 ' O! #A!+.7ell*#**1-!V#**+<+?@(9a<P(P%#**1-7'($!V(9(=% / #((,q000_$44; 01**?;KK--dkk!nbgg>Q>Q>[>[.H.Y[\ 	  &r   c                 V   U R                   UR                  S      nU R                  US5      n[        U R                  5      S::  a  U R                  US5      nUb  [        X45       VVs/ s H1  u  pV[        R                  " [        R                  " XV-  5      5      PM3     nnnU R                  U5        UR                  [        R                  " UR                  S   U R                   UR                  S      R                  R                   R"                  [%        U5      5      5        g g U R                  US5      nU R                  US5      nU R                  US5      n	U	bL  U	 Vs/ s H-  n[        R                  " [        R                  " U5      5      PM/     nnU R                  U5        OUb  ['        U5      n
[)        US5      S:X  a1  ['        U5      SU
-  :X  d   e[+        U5      S U
 n[+        U5      U
S  nOS/U
-  nS/U
-  n[+        U5      n[        X;X5       VVVVs/ s H8  u  p]p[        R                  " [        R                  " X^U-
  -  U-  5      5      PM:     nnnnnU R                  U5        O"U R-                  U R/                  US5      U5      nUR                  [        R                  " UR                  S   U R                   UR                  S      R                  R                   R"                  [%        U5      5      5        g s  snnf s  snf s  snnnnf )Nr   r	  rB   rA  r  coordinate_transformation_modetf_crop_and_resize)r   r4  r   r?   r   r(  r^  r/   simplifyr  r.  r   r   r   r   r   r   rl  r)   rC   r   r:   rw  r  )r   r   r=  r   scalesr"   r   r,  roisizesr5   	roi_startroi_endr  endscales                   r   r   $SymbolicShapeInference._infer_Resize  s   ^^DKKN+ 11$:T\\"b(((q1F!RUVgRp"qRp$!5>>%++ae2D#ERp"q**?;11$++a.26..A2O2T2T2`2`2j2j2L_2]_` " %%dA.C((q1F''a0E KP"Q5a5>>%++a.#A5"Q**?;#6{ 'GHL``s8q4x/// $S	%4 0I"3i.G!"d
I cDjGf 144ERY0b#0b,# NN5;;q%K/@5/H#IJ0b   # **?;"&":":4;O;OPTVW;XZ^"_KK--dkk!ndnnTZZXY]>[>`>`>l>l>v>v.H.Y[\? #r #R#s   +8L+4L*?L#
c                    [        US5      n[        US5      n[        USS/U-  5      n[        UR                  5      U-
  n[        U5       VVs/ s H"  u  pg[	        XpR                  XU-   5      5      PM$     nnn[        UR                  5      [        UR                  5      :  d   eUR                  S [        UR                  5       n[        U5       H  u  piU	R                  n
U	R                  U R                  UR                  U      5        Xe:  aB  U	R                  R                  R                  R                  nUR                  XXe-
        5        Xl        M     U R                  X5        [        UR                  5      U-
  n[        USS/U-  5      n[!        U R                  UR                  S      R                  5      US      n[        UR                  5       H  u  pnU R                  U   nXe:  a  [!        UR                  U   R                  5      n[	        XU-
     [        U5      S-   5      nUS U U/-   UUS  -   nUR                  ["        R$                  " XR                  U   R                  R                  R&                  U5      5        OUR                  UR                  U   5        Xl        M     g s  snnf )Nr  num_scan_inputsscan_input_axesr   scan_output_axesr  rB   )r   rC   r   r+  r6   r  r
   r   r   r   r   r    r   r   rQ  r4  r#   r   r   rl  )r   r   rH  r2  r3  num_scan_statesr(   axrJ  r  r  scan_input_dimnum_scan_outputsr4  r<  r=  r    r  s                     r   r   "SymbolicShapeInference._infer_Scan  sp    v.'.?@'.?!AVWdjj/O; #?3
3 !%9%9$O@S%TU3 	 
 8>>"c$**o555"..)9#djj/:/EAGGMKKtzz!}56#!#!4!4!:!:!>!>%%nQEX5Y&Z[#G 0 	!!$1t{{+o=(/AA3IYCYZ24>>$**R.3Q3V3VWXghjXkldkk*DA"B#1(//!2D2I2IJ./?O@S/TVYZ_V`cdVdehw>*::U78_LF99!__Q=O=T=T=`=`=j=jlqrsHOOA./G +'
s   )K
c                 8   U R                  US5      nU R                  UR                  S      nUR                  [        R
                  " UR                  S   U R                  UR                  S      R                  R                  R                  U5      5        g r   r  )r   r   r  r=  s       r   r   -SymbolicShapeInference._infer_ScatterElements  su    __T1-
^^DKKN+
))$++a.$..TU:W:\:\:h:h:r:r*46	7r   c                 \    U R                  US5      U R                  UR                  S   '   g r   )r   r#  r4  rh  s     r   r   #SymbolicShapeInference._infer_Shape  s'    +/+@+@q+IQ(r   c                 >   U R                  US5      n[        U5      U R                  UR                  S   '   U R                  UR                  S      R                  [        R                  " UR                  S   [        R                  R                  / 5      5        g r   )r   rN   r#  r4  r   r   r   r   r9   r5  r  )r   r   r'   s      r   r   "SymbolicShapeInference._infer_Size  sx    ++D!4+?+LQ(t{{1~&//))$++a.$:J:J:P:PRTU	Wr   c           	      :	   [        U R                  5      S::  aX  [        US5      n[        US5      n[        US5      nU(       d  [        [	        [        U5      5      5      nS/[        U5      -  nO[        U R                  US5      SS9n[        U R                  US5      SS9nU R                  US	5      nU R                  US
5      nUc)  Uc  Ub#  [        [	        S[        Ub  UOU5      5      5      nUc  Uc  Ub  S/[        Ub  UOU5      -  n[        USS9n[        USS9nU R                  US5      nUb  Uc`  Uc2  [	        [        U5      5       H  nU R                  USU5      Xg'   M     GO[        U5      nU H  nU R                  USU5      Xg'   M     GO[        X#XE5       GHa  u  pxp[        U	5      (       a  XR                  :  a  Xg   n	OXR                  * ::  a  US:  a  SOSn	O[        Xg   5      (       a&  U	S:  a  [        SXU   -   5      n	[        XU   5      n	OlU	S:  a"  U	S:  a  [         R"                  " XU   5      OU	n	ODXg   U	-   n	O<[        Xg   5      (       a  [         R"                  " XU   5      n	O XU   -
  S:  a  Xg   n	[        U5      (       a  [+        U5      S:  a  Xg   U-   n[        Xg   5      (       a(  [        U5      (       a  [        S[        XU   5      5      nX-
  U
-   U
S:  a  SOS-   U
-  Xg'   GMd     U R-                  U5        U R.                  UR0                  S      nUR3                  [4        R6                  " UR0                  S   UR8                  R:                  R<                  [        U5      5      5        UR>                  S   U R@                  ;   a  S/U:X  a  [        U5      S:X  a  [        U5      S:X  a  U R@                  UR>                  S      n[9        U5      [        :X  d6  [9        U5      [B        RD                  :X  a?  [        URF                  5      S:X  a%  XS   US    U R@                  UR0                  S   '   g g g g g g g ! [$         a%    ['        SR)                  XU   5      5        Xg   n	 GNf = f)N	   r  startsendsrB   T)rJ   rA  r     r   r  z/Unable to determine if {} <= {}, treat as equal)$r?   r   r   r:   r  rC   rK   r(  r   rt  r)   r^  r%   r   r  r   r/   rl   	Exceptionr   r   r&   r.  r   r4  r   r   r   r   r   rl  r   r#  r,   arrayr    )r   r   r  rB  rC  stepsr,  r(   r   er  r=  input_sympy_datas                r   r   #SymbolicShapeInference._infer_Slice  sc   T\\"a' v.D"42F v.DE#f+./C#d)OET00q9TJF4..tQ74HD&&tQ/D''a0E|V^E!S63E4%PQR}fncF,>&DII440DET2E//a8>T\|s?34A)-)K)KDRSUV)WO& 5 #=_"MA)-)K)KDRSUV)WO&  "$<
aa==MM)+.}}n,!"QAB#O$677q5 #Aq1+='= >A1#56q5/01u !&		!Q-? !,:;  !0 2Q 6A!/"455!IIa);<3 !A$6 61<$3$6
 a==SVaZ'*Q.Ao011jmmAs1a&89:A&'eaiQ2A&F1%L"A =D &&7^^DKKN+
))$++a."'':M:M:W:W*D_*UW	X
 ::a=D,,,!VPQAQVYZ^V_cdVd#//

1>$%-$7G2HBHH2T69:J:P:P6QUV6V3C1IdSTg3V  Q0 7W 3U WeAQ,'  ) 3!"S"Z"Z[\no^p"qr / 2A3s   Q+++RRc                    U R                   UR                  S      nU R                   UR                  S      R                  R                  R
                  nX2R                  R                  l        [        UR                  5      S:  a_  U R                  US5      nU R                   UR                  S      nUR                  [        R                  " UR                  X45      5        g g r  )r   r4  r   r   r   rl  rC   r  r   r   r   r
   )r   r   r=  rl  r  s        r   r   5SymbolicShapeInference._infer_SoftmaxCrossEntropyLossJ  s    ^^DKKN+NN4::a=166BBLL	(1%t{{aq1JA/BKK55bggyUV  r   c                    U R                  US5      n[        [        USS5      [        U5      5      n[        US5      nU(       dF  [        UR                  5      nX4   [
        R                  " U5      -  /U-  nU R                  U5        O&U Vs/ s H  n[
        R                  " U5      PM     nn[        [        U5      5       H  nU R                  UR                  U      n	U	R                  U" UR                  U   U R                  UR                  S      R                  R                  R                  [        US U XX   /-   X4S-   S  -   5      5      5        XR                  U	R                   '   M     g s  snf )Nr   r4   splitrB   )r   r6   r   rC   r4  r/   r0   r.  r  r   r   r   r   r   rl  r)   r
   )
r   r   make_value_info_funcr   r4   rN  num_outputsr   r;  r=  s
             r   _infer_Split_Common*SymbolicShapeInference._infer_Split_CommonT  sI    11$:#M$$BCHYDZ[dG,dkk*K&,u}}[/IIJ[XE&&u-/45u!U]]1%uE5U$CC 01BKK$KK$dnnTZZ]&C&H&H&T&T&^&^./@$/G5:,/VYjrsksktYu/uvxy ')NN277# % 6s    E:c                 D    U R                  U[        R                  5        g r   )rQ  r   r   rh  s     r   r   #SymbolicShapeInference._infer_Splitg  s      v'D'DEr   c                 D    U R                  U[        R                  5        g r   )rQ  r   make_sequence_value_inforh  s     r   r   -SymbolicShapeInference._infer_SplitToSequencej  s      v'F'FGr   c                 &    U R                  U5        g r   r  rh  s     r   r   %SymbolicShapeInference._infer_Squeezem  r  r   c           	         U R                  US5      nU R                  US5      n/ n[        U5       H  u  pVXbU   -  nUR                  U5        M     U R	                  U5        U R
                  UR                  S      nUR                  [        R                  " UR                  S   UR                  R                  R                  [        U5      5      5        g rA   )r%  r   r+  r  r.  r   r4  r   r   r   r   r   rl  r)   )	r   r   repeats_valuer   r,  r(   r"   r  r=  s	            r   r   "SymbolicShapeInference._infer_Tilep  s    a0 11$:/0DA**G""7+ 1 	""?3^^DKKN+
))$++a."'':M:M:W:W*D_*UW	Xr   c                    U R                  US5      n[        [        USS5      U5      nU R                  US5      n[	        U R
                  5      S::  a  [        US5      nOU R                  U5      S   nUS :X  a  U R                  U5      nO[        U5      n[        U5      [        [        4;   a  XTU'   O2U R                  US5      nXVU'   U R                  U5        [        U5      n[        [!        UR"                  5      5       Hq  nU R$                  UR"                  U      nUR'                  [(        R*                  " UR"                  U   UR                  R,                  R.                  U5      5        Ms     g )Nr   r4   r  rA  r   rB   )r  r6   r   r  r?   r   rZ  rt  rH   r   r&   r   r   r.  r)   r  rC   r4  r   r   r   r   r   rl  )	r   r   r5   r4   r  r   r,  r;  r=  s	            r   r   "SymbolicShapeInference._infer_TopK}  s=   ##D!,#M$$CTJOOD!,	T\\"a'dC(A$$T*1-A92248A!A7sCj dO"33D!<O$%D!&& 3?CIT[[)*CC 01BKK55dkk#6FH[H[HeHegpqr +r   c                 &    U R                  U5        g r   r  rh  s     r   r   'SymbolicShapeInference._infer_Unsqueeze  r  r   c                 n   S n[        US5      b  [        R                  R                  nO'[        US5      b  [        R                  R                  nUc   e[        R
                  " 5       nUR                  S   Ul        [        R                  R                  UR                  R                  R                  R                  R                  R                  l        X#R                  R                  R                  R                  l        U R                   UR                  S      nUR#                  U5        g )Nclasslabels_int64sclasslabels_stringsr   )r   r9   r5  r  r  ValueInfoProtor4  r
   FLOATr   sequence_typerl  map_type
value_typer   key_typer   r   )r   r   map_key_typenew_vir=  s        r   r   $SymbolicShapeInference._infer_ZipMap  s    34@++11L4!67C++22L'''$$&kk!nX\XhXhXnXn!!++44??KKU@L!!++44=^^DKKN+
Fr   c                 t   U R                  US5      nU R                  US5      nUS   S-  US'   U R                  UR                  S      R                  R                  R
                  nU R                  UR                  S      nUR                  [        R                  " UR                  S   XB5      5        g )Nr   rA  r  
r  r   r   r   r   rl  r4  r   r   r   )r   r   r    
shape_biasr  r=  s         r   r   'SymbolicShapeInference._infer_Attention  s    a(__T1-
a=1$a~~djjm499EEOO^^DKKN+
F11$++a.,VWr   c                 &    U R                  U5        g r   _propagate_shape_and_typerh  s     r   r   &SymbolicShapeInference._infer_BiasGelu      &&t,r   c                 &    U R                  U5        g r   rr  rh  s     r   r   &SymbolicShapeInference._infer_FastGelu  ru  r   c                 &    U R                  U5        g r   rr  rh  s     r   r   "SymbolicShapeInference._infer_Gelu  ru  r   c                 &    U R                  U5        g r   rr  rh  s     r   r   0SymbolicShapeInference._infer_LayerNormalization  ru  r   c                 &    U R                  U5        g r   rr  rh  s     r   r   1SymbolicShapeInference._infer_LongformerAttention  ru  r   c                 &    U R                  U5        g r   rr  rh  s     r   r   4SymbolicShapeInference._infer_SkipLayerNormalization  ru  r   c                 8   U R                  X5      nU R                  UR                  U      R                  R                  R
                  nU R                  UR                  U      nUR                  [        R                  " UR                  U   XT5      5        g r   rn  )r   r   input_indexoutput_indexr    r  r=  s          r   rs  0SymbolicShapeInference._propagate_shape_and_type  sr    2~~djj&=>CCOOYY^^DKK56
F11$++l2K\abr   c                 B   U=(       d    0 U l         U R                  R                  R                  S5        U R	                  SS9  [        5       U l        U R                  R                  R                   H  nUR                  R                  R                  R                  n[        [        U5      5       H6  n[        X4   5      b  M  U R                  UR                   U5      X4   l        M8     U R                  R%                  ['        UR                  5       Vs/ s H  n[        U5      [(        :X  d  M  UPM     sn5        M     U R                   Hr  nX`R*                  ;   a>  U R*                  U   nXpR,                  ;   d   eU R,                  U   U R,                  U'   MP  [.        R0                  " USS9U R,                  U'   Mt     [2        R4                  " 5       U l        U R6                  R9                  U R                  5        U R6                  R                  R                  S5        / n[        [;        U R                  R                  R                  5      [;        U R                  R                  R<                  5      -    Vs/ s H  o"R                   PM     sn5      n	[?        U R                  R                  R@                   V
s/ s H  oR                   U	;   PM     sn
5      (       a"  U R                  R                  RB                  nGO[?        U R                  R                  R@                   V
s/ s H  oR                   U	;   PM     sn
5      (       Gd]  [        U5      nU R                  R                  RB                   H{  nUR@                  S   U	;  d  M  [?        UR                   Vs/ s H  o"(       d  M  X);   PM     sn5      (       d  MO  U	R%                  UR@                  5        URE                  U5        M}     U[        U5      :X  aV  [?        U R                  R                  R@                   V
s/ s H  oR                   U	;   PM     sn
5      (       d  [G        S5      e[?        U R                  R                  R@                   V
s/ s H  oR                   U	;   PM     sn
5      (       d  GM]  U G	H  n[?        UR                   Vs/ s H  o"(       d  M  X RH                  ;   PM     sn5      (       d   eU RK                  U5        URL                  U RN                  ;   a   U RN                  URL                     " U5        OURL                  S;   a  U RH                  UR@                  S      n[        UR                  R                  R                  R                  5      S:X  a3  [2        RP                  RR                  UR                  R                  l*        U RV                  S	:  ao  [Y        URL                  S
-   UR                   -   5        [[        UR                  5       H1  u  p.[Y        SR]                  X.XR^                  ;   a  SOS5      5        M3     URL                  S;   a  U RH                  UR@                  S      n[        ['        UR                  5      5      n[        [        UR                  5      5       Vs/ s H  o Ra                  X5      PM     nn[        XRL                  S;   a  S	OS-
  5       H\  nU Vs/ s H+  n[        U5      U-   U:  d  M  U[        U5      U-
  U-      PM-     nn[        U5      S:  d  ML  U Rc                  USS9  M^     [        [        UR@                  5      5       GHC  nU RH                  UR@                  U      nUR                  nURe                  S5      nUS:w  a  US:w  a  MK  ['        UR                  5      nUR                  RT                  [2        RP                  RR                  :H  nU RV                  S	:  a  [Y        SR]                  UR@                  U   [)        U5      UR                  R                  RT                  5      5        UR@                  U   U R                   ;   a1  [Y        S[)        U R                   UR@                  U      5      -   5        S U;   d
  U(       d  GMO  U Rf                  (       Ga  URL                  S;   a  [        [        UR                  5      5       Vs/ s H  o Ra                  X5      PM     nnURL                  S;   a  S U;   a  URi                  S 5      nU Vs/ s H  n[        U5      [        U5      -
  U-   PM     nn[        US   5      S	:  a  US   [        US   5      S	-
  :  d   e[        US   5      S	:  a  US   [        US   5      S	-
  :  d   eO7URL                  S:X  a%  U Ra                  US5      U Rk                  US5      /nO/ nU(       a  [        [        U5      5       H  nUU   b  M  U Vs/ s H  n[        U5      [        U5      -
  U-   PM     nn[        U5      S:  d  MF  U Rm                  [o        UU5       VVs/ s H0  u  pbUS:  d  M  [q        Xb   5      (       a  Xb   O[)        Xb   5      PM2     snn5        M     SU l9        OSU l9        OSU l9        U Rr                  S:X  Ga  URL                  U RN                  ;  Ga  U=(       a    [        U5      S:H  nU(       a&  U Rt                  (       a  U Rw                  US5      OSnO[        U5      nUS:  Gai  U Ry                  XU5      nU(       a;  U RH                  UR                  S      R                  R                  RT                  nO UR                  R                  RT                  nUR9                  [z        R|                  " UR                   U[        U5      5      5        U RV                  S:  a  U(       a:  [Y        SR]                  URL                  UR                   UR                   5      5        U RV                  S	:  aP  [Y        SR]                  UR@                  U   [)        U5      UR                  R                  RT                  5      5        SU l9        GMN  U RV                  S:  d  U Rf                  (       a  U(       a  [Y        SURL                  -   S
-   UR                   -   5        [Y        S5        UR                   H  n[Y        U RH                  U   5        M     [Y        S5        UR@                   H  n
[Y        U RH                  U
   5        M     U Rf                  (       a(  U(       d!  [Y        S[)        U R*                  5      -   5            g   G	M     SU l9        gs  snf s  snf s  sn
f s  sn
f s  snf s  sn
f s  sn
f s  snf s  snf s  snf s  snf s  snf s  snf s  snnf )Nr   T)r   r  r   r   zInvalid model with cyclic graph)ConvTransposerA  z: z  Input {}: {} {}r8   )	rS   r   rm   r^   rh   MatMulIntegerri   r   Sum)rh   r  ri   rB   r   r   r   sparse_tensor_typez  {}: {} {}z  Sympy Data: )
rS   r   rm   r^   rh   r  ri   rY   r   r  r_   Fr  z3Possible unknown op: {} node: {}, guessing {} shapez*Stopping at incomplete shape inference at znode inputs:znode outputs:z	Merging: )@r#  r   r   rG  r   r   r   r   r   r   r    r   r  rC   r   rp  r
   r   r   r#   r   r   r   r/   r   r9   r   r7  r   r:   r   r   r4  r   r  rE  r   r>  r2  r   r5  r6  rl  r   r   r+  r   r   r  r   r   r   r   r%  r   r^  r%   r   r   r  rw  r   r   r)   )r   start_sympy_datar(   
input_dimsi_dimr"   r   s_mergesorted_nodessorted_known_vir<  old_sorted_nodes_lenr   r=  r
   out_rank	in_shapesin_dimsr;  out_typeout_type_kind	out_shapeout_type_undefinedshapesr  dim_idxis_unknown_opr  	out_dtypes                                r   rE  "SymbolicShapeInference._infer_impl  sJ   +1r%%l3##T#:!e##))A++1155Js:/*:+<=E262H2HQV2WJ%/ 0 &&3LQVV3T'g3TaX\]^X_cfXf3T'gh * $$A)))//2"5"5555)-)<)<W)E##A&).a)F##A& % (dll+%%m4 tDLL4F4F4L4L/MPTUYUaUaUgUgUsUsPt/tu/t!vv/tuv4<<3E3E3L3LM3La/)3LMNN<<--22Ldll>P>P>W>WX>W66_4>WXYY'*<'8$ LL..33DAo=3fjfpfpGvfpabtuH\H\fpGvCwCw'..t{{;$++D1 4 (3|+<<S8<8J8J8Q8QR8Q1VV.8QRFT FT#$EFF dll>P>P>W>WX>W66_4>WXYY !DTZZEZ1+^^+ZEFFFF((.||t///  .t4!22 ^^DKKN3rww**00445:484D4D4N4NBGG''1}}q dllT)DII56(4GA-44QtWiWiOimoqrs  5
 ||    ^^DKKN38AB?DS_?UV?U!__T5?U	Vx@n0n1tuvwAAJeAcRSfWXj\dNd7qQ(!2Q!67Ge7|a'///N x
 S-.^^DKK$4577 ( 3 3G < M1mG[6[5bgg>	%-%9%9%C%CtGWGWGaGa%a"==1$-..t{{3/?YQSQXQXQdQdQnQnop{{3'4+;+;;.T5E5EdkkRUFV5W1XXY9$(:(:'''<< ,  INcRVR\R\oH^%_H^1ood&>H^F%_#||/]]#'9#4*3//$*?CV\.]V\QRs1vI/F/LV\G.]+.vay>A+='!*sSYZ[S\~`aOaBa$a+a+.vay>A+='!*sSYZ[S\~`aOaBa$a+a!\\X5&*oodA&>PTVW@X%YF%'F!',S^'<#,S>#=$, SY*YRXQ3q6C	N+BS+HRX*Y#&w<!#3$($=$=\_`fho\p?&\pTXTU+,6 )P
140@0@c!$i(O\p?& %' (= )-DI(-DI$)	 yyE)$,,$BRBR2R);)SIRS@S( IMH_H_t';';D!'DegH (+9~H#q=(,(@(@QT(UI1,0NN4::a=,I,N,N,Z,Z,d,d	 -/GG,?,?,I,I	KK & = =bggy>XYb>c!ef  $}}q0#0$)*_*f*f(,dii+J %K#'==1#4$)-*>*>t{{3?OQTU^Q_?Aww?R?R?\?\+^ %_ )-DI$}}q(0@0@DVJT\\Y\``cgclcllmn-!%A!$.."34 ",o.!%A!$.."34 "-++4F!+D4I4I0J"JK A /? !B 	I (h& vM Y Hw S Y F0 We0 &` /^  +Z?&sr   w
6w
	ww$9w)4
w.
w.
>w3w8
w=
"w=
xx(xx$x=$x
x'xc                     U R                   R                  R                   HG  nUR                  U R                  ;   d  M  UR                  U R                  UR                     5        MI     g r   )r   r   r4  r
   r   r   )r   r4  s     r   rF  -SymbolicShapeInference._update_output_from_vi~  sE    ll((//F{{dnn,v{{ ;< 0r   c                 L   [        U 5      nU(       a  US:  a  [        S5        g [        XX45      nSnUR                  U 5        UR                  (       a#  UR                  5       nUR                  (       a  M#  UR                  5         U(       d  [        S5      eUR                  $ )N   z.Only support models of onnx opset 7 and above.Fz#Incomplete symbolic shape inference)	r?   r   rP   r   r   rE  rF  rE  r   )r   r   r   r   r   
onnx_opsetrL  rM  s           r   r8  #SymbolicShapeInference.infer_shapes  s    u%
Z!^BC#9'O`#j # ,,U3&++":"F"F"H '+++ 779"ABB'///r   )r   r   r   r   r   r   r   r   r   r   r   r#  r7  r   )F)T)r   r   )r   r   )FFr   )Q__name__
__module____qualname____firstlineno__r   r   r   r   r  r  r  r  r   r%  r(  r.  r>  rQ  rZ  rb  ri  r   rp  rt  rw  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   r   r   r   r   r   r   r   r   r   rQ  r   r   r   r   r   r   r   r   r   r   r   r   r   r   rs  rE  rF  staticmethodr8  __static_attributes__r3   r   r   rP   rP   U   s   E N+*Z
(=:27/	w
D#,-(^>	C:EY
[<|8\8L?4'j9 #TJDT*T
:8*:6l6%,)Aj
x6w0	XX N+'Z'\R!F7JWLW\W)&FH'Xs:'X------cob=
 0 0r   rP   c                  .   [         R                  " 5       n U R                  SSSS9  U R                  SSS9  U R                  SS	S
SS9  U R                  SS[        SS9  U R                  SSS
SS9  U R                  SS[        SS9  U R	                  5       $ )Nz--inputTzThe input model file)requiredhelpz--outputzThe output model file)r  z--auto_mergez:Automatically merge symbolic dims when confliction happens
store_trueF)r  actiondefaultz	--int_maxzGmaximum value for integer to be treated as boundless for ops like slicer  )r  r   r  z--guess_output_rankz;guess output rank to be the same as input 0 for unknown opsz	--verbosezHPrints detailed logs of inference, 0: turn off, 1: warnings, 3: detailedr   )argparseArgumentParseradd_argumentr&   
parse_args)parsers    r   parse_argumentsr    s    $$&F
	D7MN

)@A
Y+ %  ' f  )  + -Z+ %  ' g  !  # r   __main__zinput model: zoutput model z!Doing symbolic shape inference...zDone!r   )&r  numpyr,   r9   sysr   r   r   r/   	packagingr   parse__version__r   r   r#   r)   r%   r6   r?   rH   rK   rN   rP   r  r  argsr   r   r4  r8  loadr   r   r   r   out_mpsaver3   r   r   <module>r     s=  
    
 6 6  }}T%%&'--*@@ @@cR_r.
|0 |0~). zD	/DJJ
&'{{o+,	
-.#004::1FVZVeVe151G1GWF{{v		&$++&g { r   