§
    íNgV  ã                   ó4   — d Z ddlmZ ddlmZ ddlmZ d„ ZdS )zQ Create Conv2d Factory Method

Hacked together by / Copyright 2020 Ross Wightman
é   )ÚMixedConv2d)Ú
CondConv2d)Úcreate_conv2d_padc                 ó|  — t          |t          ¦  «        rCd|vsJ ‚d|v r)|                     d¦  «        }|| k    rd|d<   n|dk    sJ ‚t          | ||fi |¤Ž}nc|                     dd¦  «        }|r| 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.
    Únum_expertsÚgroupsTÚ	depthwiser   Fé    )Ú
isinstanceÚlistÚpopr   r   r   )Úin_channelsÚout_channelsÚkernel_sizeÚkwargsr   Úmr	   s          úU/var/www/html/ai-engine/env/lib/python3.11/site-packages/timm/layers/create_conv2d.pyÚcreate_conv2dr      s  € õ +tÑ$Ô$ð cØ FÐ*Ð*Ð*Ð*ØvÐÐØ—Z’Z Ñ)Ô)ˆFØ˜Ò$Ð$Ø&*{Ñ#Ð#à ’{{{{õ ˜ \°;ÐIÐIÀ&ÐIÐIˆˆà—J’J˜{¨EÑ2Ô2ˆ	à )ÐF¨v¯zªz¸(ÀAÑ/FÔ/FˆØ˜FÐ"Ð" v¨mÔ'<¸qÒ'@Ð'@Ý˜;¨°kÐ[Ð[È&Ð[ÐTZÐ[Ð[ˆAˆAå! +¨|¸[ÐbÐbÐQWÐbÐ[aÐbÐbˆAØ€Hó    N)Ú__doc__Úmixed_conv2dr   Úcond_conv2dr   Úconv2d_samer   r   © r   r   ú<module>r      s`   ððð ð
 &Ð %Ð %Ð %Ð %Ð %Ø #Ð #Ð #Ð #Ð #Ð #Ø *Ð *Ð *Ð *Ð *Ð *ðð ð ð ð r   