
    khV                     2    d Z ddlmZ ddlmZ ddlmZ d Zy)zQ Create Conv2d Factory Method

Hacked together by / Copyright 2020 Ross Wightman
   )MixedConv2d)
CondConv2d)create_conv2d_padc                 L   t        |t              r=d|vsJ d|v r#|j                  d      }|| k(  rd|d<   n|dk(  sJ t        | ||fi |}|S |j                  dd      }|r| n|j                  dd      }d|v r|d   dkD  rt	        | ||fd|i|}|S t        | ||fd|i|}|S )z Select a 2d convolution implementation based on arguments
    Creates and returns one of torch.nn.Conv2d, Conv2dSame, MixedConv2d, or CondConv2d.

    Used extensively by EfficientNet, MobileNetv3 and related networks.
    num_expertsgroupsT	depthwiser   F    )
isinstancelistpopr   r   r   )in_channelsout_channelskernel_sizekwargsr   mr	   s          U/var/www/teggl/fontify/venv/lib/python3.12/site-packages/timm/layers/create_conv2d.pycreate_conv2dr      s     +t$F***vZZ)F$&*{#{"{ \;I&I H JJ{E2	 )vzz(A/FF"vm'<q'@;k[&[TZ[A H "+|[bQWb[abAH    N)__doc__mixed_conv2dr   cond_conv2dr   conv2d_samer   r    r   r   <module>r      s   
 & # *r   