
    RЦi_                     v   S r SSKJr  SSKJrJrJrJrJr  SSK	r	SSK	J
r
  SSKJrJr  SSKJrJrJrJrJrJrJr  SS	KJr  SS
KJr  SSKJr  SSKJrJr   " S S\
R>                  5      r  " S S\
R>                  5      r! " S S\
R>                  5      r" " S S\
R>                  5      r# " S S\
R>                  5      r$ " S S\
R>                  5      r% " S S\
R>                  5      r&S r'S9S jr(\" \(" SS9\(" SS9\(" SS9\(" SS9\(" SS9\(" SS9\(" SSS S!9\(" SSS S!9\(" SSS S!9\(" SS9\(" SS"S"S#S$S%9\(" SS&S'9\(" S(S)S*S+9S,.5      r)S:S- jr*\S:S. j5       r+\S:S/ j5       r,\S:S0 j5       r-\S:S1 j5       r.\S:S2 j5       r/\S:S3 j5       r0\S:S4 j5       r1\S:S5 j5       r2\S:S6 j5       r3\S:S7 j5       r4\S:S8 j5       r5g);z
MambaOut models for image classification.
Some implementations are modified from:
timm (https://github.com/rwightman/pytorch-image-models),
MetaFormer (https://github.com/sail-sg/metaformer),
InceptionNeXt (https://github.com/sail-sg/inceptionnext)
    )OrderedDict)ListOptionalTupleTypeUnionN)nnIMAGENET_DEFAULT_MEANIMAGENET_DEFAULT_STD)trunc_normal_DropPathcalculate_drop_path_rates	LayerNorm
LayerScaleClNormMlpClassifierHeadget_act_layer   )build_model_with_cfg)feature_take_indices)checkpoint_seq)register_modelgenerate_default_cfgsc                      ^  \ rS rSrSrSSS\R                  \SS4S\S\S	\	S
\
\R                     S\
\R                     4
U 4S jjjrS rSrU =r$ )Stem   zICode modified from InternImage:
https://github.com/OpenGVLab/InternImage
   `   TNin_chsout_chsmid_norm	act_layer
norm_layerc                 "  > XgS.n[         T	U ]  5         [        R                  " UUS-  4SSSS.UD6U l        U(       a  U" US-  40 UD6OS U l        U" 5       U l        [        R                  " US-  U4SSSS.UD6U l        U" U40 UD6U l        g )Ndevicedtype   r   r   kernel_sizestridepadding)	super__init__r	   Conv2dconv1norm1actconv2norm2)
selfr   r    r!   r"   r#   r&   r'   dd	__class__s
            S/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/timm/models/mambaout.pyr.   Stem.__init__   s     /YYqL
 
 

 8@Z133T
;YYqL
 
 

  .2.
    c                 B   U R                  U5      nU R                  b9  UR                  SSSS5      nU R                  U5      nUR                  SSSS5      nU R                  U5      nU R	                  U5      nUR                  SSSS5      nU R                  U5      nU$ )Nr   r(   r   r   )r0   r1   permuter2   r3   r4   r5   xs     r8   forwardStem.forward;   s    JJqM::!		!Q1%A

1A		!Q1%AHHQKJJqMIIaAq!JJqMr:   )r2   r0   r3   r1   r4   )__name__
__module____qualname____firstlineno____doc__r	   GELUr   intboolr   Moduler.   r?   __static_attributes____classcell__r7   s   @r8   r   r      sx     !)+*3// / 	/
 BII/ RYY/ /@
 
r:   r   c                   f   ^  \ rS rSrSS\SS4S\S\S\\R                     4U 4S jjjr	S	 r
S
rU =r$ )DownsampleNormFirstH   r      Nr   r    r#   c                    > XES.n[         TU ]  5         U" U40 UD6U l        [        R                  " UU4SSSS.UD6U l        g Nr%   r   r(   r   r)   )r-   r.   normr	   r/   convr5   r   r    r#   r&   r'   r6   r7   s          r8   r.   DownsampleNormFirst.__init__J   sY     /v,,	II
 
 
	r:   c                     U R                  U5      nUR                  SSSS5      nU R                  U5      nUR                  SSSS5      nU$ Nr   r   r   r(   )rS   r<   rT   r=   s     r8   r?   DownsampleNormFirst.forward^   sI    IIaLIIaAq!IIaLIIaAq!r:   rT   rS   rA   rB   rC   rD   r   rG   r   r	   rI   r.   r?   rJ   rK   rL   s   @r8   rN   rN   H   sL     *3

 
 RYY	
 
( r:   rN   c                   f   ^  \ rS rSrSS\SS4S\S\S\\R                     4U 4S jjjr	S	 r
S
rU =r$ )
Downsamplef   r   rP   Nr   r    r#   c                    > XES.n[         TU ]  5         [        R                  " UU4SSSS.UD6U l        U" U40 UD6U l        g rR   )r-   r.   r	   r/   rT   rS   rU   s          r8   r.   Downsample.__init__h   s[     /II
 
 
	 w-"-	r:   c                     UR                  SSSS5      nU R                  U5      nUR                  SSSS5      nU R                  U5      nU$ rX   )r<   rT   rS   r=   s     r8   r?   Downsample.forward|   sI    IIaAq!IIaLIIaAq!IIaLr:   rZ   r[   rL   s   @r8   r]   r]   f   sL     *3.. . RYY	. .( r:   r]   c                      ^  \ rS rSrSrSS\R                  S\SSSS4	S	\S
\S\	S\
\R                     S\\   S\
\R                     S\S\4U 4S jjjrSS
\S\\	   S\4S jjrSS\4S jjrSrU =r$ )MlpHead   zMLP classification head
      avg           TNin_featuresnum_classes	pool_typer"   	mlp_ratior#   	drop_ratebiasc                 Z  > XS.n[         TU ]  5         Ub  [        XQ-  5      nOS nX0l        Xl        U=(       d    UU l        U" U40 UD6U l        U(       aU  [        R                  " [        S[        R                  " X40 UD64SU" 5       4SU" U40 UD64/5      5      U l        Xl        O Xl        [        R                  " 5       U l        US:  a$  [        R                  " U R                  U4SU0UD6O[        R                  " 5       U l        [        R                  " U5      U l        g )Nr%   fcr2   rS   r   ro   )r-   r.   rG   rl   rj   hidden_sizerS   r	   
Sequentialr   Linear
pre_logitsnum_featuresIdentityrq   Dropouthead_dropout)r5   rj   rk   rl   r"   rm   r#   rn   ro   r&   r'   r6   rr   r7   s                r8   r.   MlpHead.__init__   s    / i56KK"&&5+{1b1	 mmKryy@R@A	$K62679 - DO
 !, + kkmDOP[^_P_"))D--{LLLegepeperJJy1r:   reset_otherc                 <   Ub  X l         U(       aE  [        R                  " 5       U l        [        R                  " 5       U l        U R
                  U l        US:  a'  [        R                  " U R                  U5      U l        g [        R                  " 5       U l        g )Nr   )	rl   r	   rw   rS   ru   rj   rv   rt   rq   )r5   rk   rl   r{   s       r8   resetMlpHead.reset   sf     &NDI kkmDO $ 0 0D?JQ"))D--{;TVT_T_Tar:   ru   c                     U R                   S:X  a  UR                  S5      nU R                  U5      nU R                  U5      nU R	                  U5      nU(       a  U$ U R                  U5      nU$ )Nrg   )r   r(   )rl   meanrS   ru   ry   rq   r5   r>   ru   s      r8   r?   MlpHead.forward   s`    >>U"vAIIaLOOAa HGGAJr:   )rq   ry   rr   rj   rS   rv   rl   ru   )NFF)rA   rB   rC   rD   rE   r	   rF   r   rG   strr   rI   r   floatrH   r.   r}   r?   rJ   rK   rL   s   @r8   rd   rd      s      $")+'(*3!$2$2 $2 	$2
 BII$2  }$2 RYY$2 $2 $2 $2Lb b# bTX b	T 	 	r:   rd   c                      ^  \ rS rSrSrSSSS\\R                  SSS4	S\S	\	S
\S\	S\
\	   S\\R                     S\\R                     S\	4U 4S jjjrS rSrU =r$ )GatedConvBlock   a  Our implementation of Gated CNN Block: https://arxiv.org/pdf/1612.08083
Args:
    conv_ratio: control the number of channels to conduct depthwise convolution.
        Conduct convolution on partial channels can improve paraitcal efficiency.
        The idea of partial channels is from ShuffleNet V2 (https://arxiv.org/abs/1807.11164) and
        also used by InceptionNeXt (https://arxiv.org/abs/2303.16900) and FasterNet (https://arxiv.org/abs/2303.03667)
UUUUUU@         ?Nri   dimexpansion_ratior*   
conv_ratiols_init_valuer#   r"   	drop_pathc                   > XS.n[         TU ]  5         U" U40 UD6U l        [        X!-  5      n[        R
                  " XS-  40 UD6U l        U" 5       U l        [        XA-  5      nXU-
  U4U l        [        R                  " UU4UUS-  US.UD6U l
        [        R
                  " X40 UD6U l        Ub  [        U40 UD6O[        R                  " 5       U l        US:  a  [        U5      U l        g [        R                  " 5       U l        g )Nr%   r(   )r*   r,   groupsri   )r-   r.   rS   rG   r	   rt   fc1r2   split_indicesr/   rT   fc2r   rw   lsr   r   )r5   r   r   r*   r   r   r#   r"   r   r&   r'   kwargsr6   hiddenconv_channelsr7   s                  r8   r.   GatedConvBlock.__init__   s     /s)b)	_*+99S1*33;J,-$}&<mLII
 $1$ 
 
	 99V/B/+8+D*S'B'"++-09B),BKKMr:   c                    UnU R                  U5      nU R                  U5      n[        R                  " XR                  SS9u  p4nUR                  SSSS5      nU R                  U5      nUR                  SSSS5      nU R                  U R                  U5      [        R                  " XE4SS9-  5      nU R                  U5      nU R                  U5      nX-   $ )N)r   r   r   r   r(   )rS   r   torchsplitr   r<   rT   r   r2   catr   r   )r5   r>   shortcutgics         r8   r?   GatedConvBlock.forward   s    IIaLHHQK++a!3!3<aIIaAq!IIaLIIaAq!HHTXXa[599aV#<<=GGAJNN1|r:   )r2   rT   r   r   r   r   rS   r   )rA   rB   rC   rD   rE   r   r	   rF   rG   r   r   r   rI   r.   r?   rJ   rK   rL   s   @r8   r   r      s     &+  #-1*3)+! R R # R 	 R
  R $E? R RYY R BII R  R  RD r:   r   c                      ^  \ rS rSrSSSSSSS\\R                  SSS4S	\S
\\   S\S\	S\S\	S\
S\\	   S\\R                     S\\R                     S\	4U 4S jjjrS rSrU =r$ )MambaOutStage   Nrh   r   r   r    ri   r   dim_outdepthr   r*   r   
downsampler   r#   r"   r   c                   > XS.n[         TU ]  5         U=(       d    UnSU l        US:X  a  [        X4SU	0UD6U l        O;US:X  a  [        X4SU	0UD6U l        O!X:X  d   e[        R                  " 5       U l        [        R                  " [        U5       Vs/ s H6  n[        SUUUUUU	U
[        U[        [        45      (       a  X   OUS.UD6PM8     sn6 U l        g s  snf )Nr%   FrT   r#   conv_nf)r   r   r*   r   r   r#   r"   r    )r-   r.   grad_checkpointingr]   r   rN   r	   rw   rs   ranger   
isinstancelisttupleblocks)r5   r   r   r   r   r*   r   r   r   r#   r"   r   r&   r'   r6   jr7   s                   r8   r.   MambaOutStage.__init__   s      /.S"'(S*SPRSDO9$1#\:\Y[\DO>!> kkmDOmm 5\&
 "  
 /'%+%#*4Yu*N*N),T]
 
 "&
  &
s   =Cc                     U R                  U5      nU R                  (       a;  [        R                  R	                  5       (       d  [        U R                  U5      nU$ U R                  U5      nU$ N)r   r   r   jitis_scriptingr   r   r=   s     r8   r?   MambaOutStage.forward*  sV    OOA""599+A+A+C+Ct{{A.A  AAr:   )r   r   r   )rA   rB   rC   rD   r   r	   rF   rG   r   r   r   r   rI   r.   r?   rJ   rK   rL   s   @r8   r   r      s    
 &*%*  # -1*3)+!** c]* 	*
 #* * * * $E?* RYY* BII* * *X r:   r   c            !         ^  \ rS rSrSrSSSSS\\R                  SS	S
SSSSSSSS4S\S\S\	S\
\S4   S\
\S4   S\\R                     S\\R                     S\S\S\S\S\\   S\	S\S\S \	4 U 4S! jjjrS" r\R&                  R(                  S7S# j5       r\R&                  R(                  S8S$ j5       r\R&                  R(                  S%\R                  4S& j5       rS9S\S\\	   4S' jjr     S:S(\R2                  S)\\\\\   4      S*\S+\S,\	S-\S%\\\R2                     \
\R2                  \\R2                     4   4   4S. jjr   S;S)\\\\   4   S/\S0\4S1 jjrS2 rS7S3\4S4 jjrS5 r S6r!U =r"$ )<MambaOuti3  a  MetaFormer
    A PyTorch impl of : `MetaFormer Baselines for Vision`  -
      https://arxiv.org/abs/2210.13452

Args:
    in_chans (int): Number of input image channels. Default: 3.
    num_classes (int): Number of classes for classification head. Default: 1000.
    depths (list or tuple): Number of blocks at each stage. Default: [3, 3, 9, 3].
    dims (int): Feature dimension at each stage. Default: [96, 192, 384, 576].
    downsample_layers: (list or tuple): Downsampling layers before each stage.
    drop_path_rate (float): Stochastic depth rate. Default: 0.
    output_norm: norm before classifier head. Default: partial(nn.LayerNorm, eps=1e-6).
    head_fn: classification head. Default: nn.Linear.
    head_dropout (float): dropout for MLP classifier. Default: 0.
r   rf   rg   r   r   	   r   r        i@  r   r   r   TNrT   ri   defaultin_chansrk   global_pooldepths.dimsr#   r"   r   r   r*   stem_mid_normr   r   drop_path_ratern   head_fnc                   > [         TU ]  5         UUS.nX l        Xl        Xl        SU l        [        U[        [        45      (       d  U/n[        U[        [        45      (       d  U/n[        U5      n[        U5      nUU l        / U l        [        UUS   4UUUS.UD6U l        US   n[        XSS9nSnSn[         R"                  " 5       U l        ['        U5       H  nUU   nUS:X  d  US:  a  SOS	nUU-  n[)        SUUUU   U
UU	US:  a  UOS
UUUUU   S.UD6nU R$                  R+                  U5        UnU =R                  [-        UUSU 3S9/-  sl        UUU   -  nM     US:X  a  [/        UU4UUUS.UD6U l        O#[3        UU4[5        US-  5      UUUS.UD6U l        UU l        U R0                  R6                  U l        U R;                  U R<                  5        g )Nr%   NHWCr   )r!   r"   r#   T)	stagewiserh   r(   r   r   )r   r   r   r*   r   r   r   r   r#   r"   r   zstages.)num_chs	reductionmoduler   )rl   rn   r#   )rr   rl   r#   rn   r   )r-   r.   rk   r   rn   
output_fmtr   r   r   r   len	num_stagefeature_infor   stemr   r	   rs   stagesr   r   appenddictrd   headr   rG   rv   head_hidden_sizeapply_init_weights)r5   r   rk   r   r   r   r#   r"   r   r   r*   r   r   r   r   rn   r   r&   r'   r6   r   prev_dimdp_ratescurcurr_strider   r   r+   stager7   s                                r8   r.   MambaOut.__init__D  sM   * 	/& " &4-00XF$u..6D!),	K	"G
 #!
 
	 7,^tTmmoy!Aq'C%*a!eQF6!K! Qi'% /)*Q:B+%#"1+ E KKu%H$x;Y`ab`cWd"e!ff6!9C- "0 i &#% DI 0  1-%%# DI % $		 6 6

4%%&r:   c                     [        U[        R                  [        R                  45      (       aM  [	        UR
                  SS9  UR                  b+  [        R                  R                  UR                  S5        g g g )Ng{Gz?)stdr   )	r   r	   r/   rt   r   weightro   init	constant_)r5   ms     r8   r   MambaOut._init_weights  sV    a"))RYY/00!((,vv!!!!&&!, " 1r:   c                 0    [        SU(       a  SS9$ SS/S9$ )Nz^stemz^stages\.(\d+))z^stages\.(\d+)\.downsample)r   )z^stages\.(\d+)\.blocks\.(\d+)N)r   r   )r   )r5   coarses     r8   group_matcherMambaOut.group_matcher  s/    (.$
 	
 685
 	
r:   c                 6    U R                    H	  nXl        M     g r   )r   r   )r5   enabless      r8   set_grad_checkpointingMambaOut.set_grad_checkpointing  s    A#)  r:   returnc                 .    U R                   R                  $ r   )r   rq   )r5   s    r8   get_classifierMambaOut.get_classifier  s    yy||r:   c                 F    Xl         U R                  R                  X5        g r   )rk   r   r}   )r5   rk   r   s      r8   reset_classifierMambaOut.reset_classifier  s    &		1r:   r>   indicesrS   
stop_earlyr   intermediates_onlyc           	         US;   d   S5       eUS:H  n/ n[        [        U R                  5      U5      u  pU R                  U5      n[        R
                  R                  5       (       d  U(       d  U R                  nOU R                  SU
S-    n[        U5       H%  u  pU" U5      nX;   d  M  UR                  U5        M'     U(       a1  U Vs/ s H$  oR                  SSSS5      R                  5       PM&     nnU(       a  U$ X4$ s  snf )	a  Forward features that returns intermediates.

Args:
    x: Input image tensor
    indices: Take last n blocks if int, all if None, select matching indices if sequence
    norm: Apply norm layer to compatible intermediates
    stop_early: Stop iterating over blocks when last desired intermediate hit
    output_fmt: Shape of intermediate feature outputs
    intermediates_only: Only return intermediate features
Returns:

)NCHWr   z*Output format must be one of NCHW or NHWC.r   Nr   r   r   r(   )r   r   r   r   r   r   r   	enumerater   r<   
contiguous)r5   r>   r   rS   r   r   r   channel_firstintermediatestake_indices	max_indexr   feat_idxr   ys                  r8   forward_intermediatesMambaOut.forward_intermediates  s    * --[/[[-"f,"6s4;;7G"Q IIaL99!!##:[[F[[)a-0F(0OHaA'$$Q'  1
 IVWAYYq!Q2==?MW   Xs   +D
prune_norm
prune_headc                     [        [        U R                  5      U5      u  pEU R                  SUS-    U l        U(       a  U R                  SS5        U$ )z?Prune layers not required for specified intermediates.
        Nr   r   r   )r   r   r   r   )r5   r   r	  r
  r  r  s         r8   prune_intermediate_layers"MambaOut.prune_intermediate_layers  sK     #7s4;;7G"Qkk.9q=1!!!R(r:   c                 J    U R                  U5      nU R                  U5      nU$ r   )r   r   r=   s     r8   forward_featuresMambaOut.forward_features  s!    IIaLKKNr:   ru   c                 X    U(       a  U R                  XS9nU$ U R                  U5      nU$ )N)ru   )r   r   s      r8   forward_headMambaOut.forward_head  s/    3=DIIaI/ DH99Q<r:   c                 J    U R                  U5      nU R                  U5      nU$ r   )r  r  r=   s     r8   r?   MambaOut.forward  s'    !!!$a r:   )rn   r   r   r   r   rk   rv   r   r   r   r   r   )Tr   )NFFr   F)r   FT)#rA   rB   rC   rD   rE   r   r	   rF   rG   r   r   r   rI   r   rH   r   r.   r   r   r   ignorer   r   r   r   Tensorr   r   r  r  r  r  r?   rJ   rK   rL   s   @r8   r   r   3  s   $ #$&2$7*3)+ #%( "&-1$$&!$'b'b' b' 	b'
 #s(Ob' S/b' RYYb' BIIb' b' #b' b'  b' $E?b' b' "b'  !b'" #b' b'H- YY
 
 YY* * YY		  2C 2hsm 2 8<$$',- ||-  eCcN34-  	- 
 -  -  !%-  
tELL!5tELL7I)I#JJ	K- b ./$#	3S	>*  	
$  r:   r   c                    SU ;   a  U S   n SU ;   a  U $ SS K n0 nU R                  5        H  u  pEUR                  SS5      nUR                  SSU5      nUR                  SS	U5      nUR	                  S
5      (       a  UR                  S
S5      nOLUR	                  S5      (       a6  UR                  SS5      nUR                  SS5      nUR                  SS5      nXSU'   M     U$ )Nmodelzstem.conv1.weightr   zdownsample_layers.0.zstem.zstages.([0-9]+).([0-9]+)zstages.\1.blocks.\2zdownsample_layers.([0-9]+)zstages.\1.downsampleznorm.z
head.norm.zhead.z	head.fc1.zhead.pre_logits.fc.zhead.pre_logits.norm.z	head.fc2.zhead.fc.)reitemsreplacesub
startswith)
state_dictr  r  out_dictkvs         r8   checkpoint_filter_fnr#    s    *(
j(H  "II,g6FF.0FJFF02I1M<<  		'<0A\\'""		+'<=A		,(?@A		+z2A # Or:   c                 4    U SSSSSS[         [        SSS	S
.UE$ )Nrf   )r      r%  )r      r&  )r   r   r   bicubicz
stem.conv1zhead.fcz
apache-2.0)urlrk   
input_sizetest_input_size	pool_sizecrop_pctinterpolationr   r   
first_conv
classifierlicenser
   )r(  r   s     r8   _cfgr1  *  s5    =]y%.B")  r:   ztimm/)	hf_hub_idgffffff?r   )r2  r,  test_crop_pct)r   r   r   squash)   r5  )r2  r)  r*  	crop_moder+  i-.  )r2  rk   )r      r7  )r   r   r   )   r8  )r)  r*  r+  )zmambaout_femto.in1kzmambaout_kobe.in1kzmambaout_tiny.in1kzmambaout_small.in1kzmambaout_base.in1kzmambaout_small_rw.sw_e450_in1kz#mambaout_base_short_rw.sw_e500_in1kz"mambaout_base_tall_rw.sw_e500_in1kz"mambaout_base_wide_rw.sw_e500_in1kz+mambaout_base_plus_rw.sw_e150_in12k_ft_in1kz0mambaout_base_plus_rw.sw_e150_r384_in12k_ft_in1kz#mambaout_base_plus_rw.sw_e150_in12ktest_mambaoutc           	      F    [        [        X4[        [        SSS9S.UD6nU$ )N)r   r   r(   r   T)out_indicesflatten_sequential)pretrained_filter_fnfeature_cfg)r   r   r#  r   )variant
pretrainedr   r  s       r8   _create_mambaoutrA  b  s4     '1\dK 	E Lr:   c           	      D    [        SSS9n[        SSU 0[        U40 UD6D6$ )Nr   0   r   r   r&  r   r   r@  )mambaout_femtor   rA  r@  r   
model_argss      r8   rF  rF  m  s-    \0BCJbbtJGaZ`Gabbr:   c           	      L    [        / SQ/ SQS9n[        SSU 0[        U40 UD6D6$ )N)r   r      r   rC  rE  r@  )mambaout_koberG  rH  s      r8   rL  rL  s  s-    ]1CDJa
ad:F`Y_F`aar:   c           	      L    [        / SQ/ SQS9n[        SSU 0[        U40 UD6D6$ )Nr   r   rE  r@  )mambaout_tinyrG  rH  s      r8   rN  rN  x  s-    \0CDJa
ad:F`Y_F`aar:   c           	      L    [        / SQ/ SQS9n[        SSU 0[        U40 UD6D6$ )Nr   rh      r   r   rE  r@  )mambaout_smallrG  rH  s      r8   rR  rR  ~  s-    ]1DEJbbtJGaZ`Gabbr:   c           	      L    [        / SQ/ SQS9n[        SSU 0[        U40 UD6D6$ )NrP        i   i   rE  r@  )mambaout_baserG  rH  s      r8   rW  rW    s-    ]1EFJa
ad:F`Y_F`aar:   c           	      T    [        / SQ/ SQSSSSS9n[        S	SU 0[        U40 UD6D6$ )
NrP  r   Fr   ư>norm_mlp)r   r   r   r   r   r   r@  )mambaout_small_rwrG  rH  s      r8   r[  r[    s>     J eJe$zJd]cJdeer:   c                 P    [        SSSSSSSSS	9n[        SS
U 0[        U40 UD6D6$ )N)r   r      r   rT        @      ?Fr   rY  rZ  r   r   r   r   r   r   r   r   r@  )mambaout_base_short_rwrG  rH  s      r8   ra  ra    sE    !	J jjtT^OibhOijjr:   c                 P    [        SSSSSSSSS	9n[        SS
U 0[        U40 UD6D6$ )Nr   rh      r   rT  g      @r_  Fr   rY  rZ  r`  r@  )mambaout_base_tall_rwrG  rH  s      r8   re  re    sE    !	J i
idS]NhagNhiir:   c                 R    [        SSSSSSSSS	S
9	n[        SSU 0[        U40 UD6D6$ )NrP  rT  r^        ?Fr   rY  silurZ  	r   r   r   r   r   r   r   r"   r   r@  )mambaout_base_wide_rwrG  rH  s      r8   rj  rj    H    !
J i
idS]NhagNhiir:   c                 R    [        SSSSSSSSS	S
9	n[        SSU 0[        U40 UD6D6$ )Nrc  rT  r^  rg  Fr   rY  rh  rZ  ri  r@  )mambaout_base_plus_rwrG  rH  s      r8   rm  rm    rk  r:   c                 P    [        SSSSSSSSS	9n[        SS
U 0[        U40 UD6D6$ )N)r   r   r   r   )       rD  @   r   Fr   g-C6?rh  rZ  )r   r   r   r   r   r   r"   r   r@  )r9  rG  rH  s      r8   r9  r9    sD    	J a
ad:F`Y_F`aar:   )r   r   )6rE   collectionsr   typingr   r   r   r   r   r   r	   	timm.datar   r   timm.layersr   r   r   r   r   r   r   _builderr   	_featuresr   _manipulater   	_registryr   r   rI   r   rN   r]   rd   r   r   r   r#  r1  default_cfgsrA  rF  rL  rN  rR  rW  r[  ra  re  rj  rm  r9  r   r:   r8   <module>r{     s   $ 5 5   A J  J  J * + ' </299 /d")) < <<bii <~6RYY 6r4BII 4n[ryy [|2	 % '+' ,0S, +/S+ +/S+ 484 9= -8_g9 ,0, ]M]cdQ)& )X c c
 b b b b
 c c
 b b
 	f 	f k k j j j j j j b br:   