o
    ÓÙ¾iV  ã                   @   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 r#| d¡}|| krd|d< n|dks#J ‚t| ||fi |¤Ž}|S | dd¡}|r9| n| dd¡}d|v rW|d dkrWt| ||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   © r   úM/home/ubuntu/.local/lib/python3.10/site-packages/timm/layers/create_conv2d.pyÚcreate_conv2d   s    


	ùÿr   N)Ú__doc__Úmixed_conv2dr   Úcond_conv2dr   Úconv2d_samer   r   r   r   r   r   Ú<module>   s
    