
    RЦi                         S r SSKJrJrJrJr  SSKJr  SSKJrJ	r	  SSK
Jr  SSKJr  SSKJr   " S	 S
\R                  5      r\r\rg)zEConv2d + BN + Act

Hacked together by / Copyright 2020 Ross Wightman
    )AnyDictOptionalType)nn   )	LayerTypePadType)	create_aa)create_conv2d)get_norm_act_layerc            &       @  ^  \ rS rSrSSSSSSSS\R
                  \R                  SSSSSSS4S\S\S	\S
\S\S\S\S\	S\	S\	S\
S\\
   S\\
   S\\\R                        S\\\\4      S\\\\4      S\\\\4      4"U 4S jjjr\S 5       r\S 5       rS rSrU =r$ )ConvNormAct   r    FTNin_channelsout_channelskernel_sizestridepaddingdilationgroupsbias
apply_norm	apply_act
norm_layer	act_layeraa_layer
drop_layerconv_kwargsnorm_kwargs
act_kwargsc           	        > UUS.n[         TU ]  5         0 UEU=(       d    0 En0 UEU=(       d    0 EnU=(       d    0 nUS L=(       a    US:  n[        UUU4U(       a  SOUUUUUS.UD6U l        U	(       a)  [	        X5      nU(       a  UUS'   U" U4U
US.UD6U l        OG[        R                  " 5       U l        U(       a&  UUS'   U R
                  R                  SU" 5       5        [        UU4UUS S.UD6U l
        g )N)devicedtyper   )r   r   r   r   r   r   )r   r"   drop)r   enablenoop)super__init__r   convr   bnr   
Sequential
add_moduler   aa)selfr   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r$   r%   dduse_aanorm_act_layer	__class__s                          V/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/timm/layers/conv_bn_act.pyr*   ConvNormAct.__init__   s6   , /33 1r333 1r3%2
%4&1*!

 1F

 

	 /
FN,6L)$#% 	DG mmoDG,6L)""6:<8
 
 
    c                 .    U R                   R                  $ N)r+   r   r0   s    r5   r   ConvNormAct.in_channelsT   s    yy$$$r7   c                 .    U R                   R                  $ r9   )r+   r   r:   s    r5   r   ConvNormAct.out_channelsX   s    yy%%%r7   c                     U R                  U5      nU R                  U5      n[        U SS 5      nUb  U R                  U5      nU$ )Nr/   )r+   r,   getattrr/   )r0   xr/   s      r5   forwardConvNormAct.forward\   sA    IIaLGGAJT4&>
Ar7   )r/   r,   r+   )__name__
__module____qualname____firstlineno__r   BatchNorm2dReLUintr
   boolr	   r   r   Moduler   strr   r*   propertyr   r   rA   __static_attributes____classcell__)r4   s   @r5   r   r      sv   
  !!#"$&NN-/WW,048484837)B
B
 B
 	B

 B
 B
 B
 B
 B
 B
 B
 "B
  	*B
 y)B
 !bii1B
  "$sCx.1!B
" "$sCx.1#B
$ !c3h0%B
 B
H % % & & r7   r   N)__doc__typingr   r   r   r   torchr   r	   r
   	blur_poolr   r   create_norm_actr   rK   r   	ConvBnActConvNormActAa r7   r5   <module>rX      s@    - ,  &   ( /S")) Sl 	r7   