U
    ¯Ê¹jV  ã                   @   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ƒrXd|kst‚d|krF| d¡}|| kr:d|d< n|dksFt‚t| ||f|Ž}nf| dd¡}|rl| n
| dd¡}d|k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ÚAssertionErrorÚpopr   r   r   )Zin_channelsZout_channelsZkernel_sizeÚkwargsr   Úmr   © r   úX/var/www/html/bwave/python/venv/lib/python3.8/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   