a
    þdV  ã                   @   s4   d Z ddlmZ ddlmZ ddlmZ dd„ ZdS )zQ Create Conv2d Factory Method

Hacked together by / Copyright 2020 Ross Wightman
é   )ÚMixedConv2d)Ú
CondConv2d)Úcreate_conv2d_padc                 K   sÆ   t |tƒr\d|vsJ ‚d|v rF| d¡}|| kr:d|d< n|dksFJ ‚t| ||fi |¤Ž}nf| dd¡}|rp| n
| dd¡}d|v rª|d dkrªt| ||fd|i|¤Ž}n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.
    Znum_expertsÚgroupsTÚ	depthwiser   Fé    )Ú
isinstanceÚlistÚpopr   r   r   )Zin_channelsZout_channelsZkernel_sizeÚkwargsr   Úmr   © r   úb/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/timm/layers/create_conv2d.pyÚcreate_conv2d   s    


r   N)Ú__doc__Zmixed_conv2dr   Zcond_conv2dr   Zconv2d_samer   r   r   r   r   r   Ú<module>   s   