Ë
    éÓ^j  ã                   ó’   — d Z ddlmZmZmZmZ ddlmZ ddlmZm	Z	 ddl
mZ ddlmZ ddlmZ  G d	„ d
ej                  «      ZeZeZy)zF Conv2d + BN + Act

Hacked together by / Copyright 2020 Ross Wightman
é    )ÚAnyÚDictÚOptionalÚType)Únné   )Ú	LayerTypeÚPadType)Ú	create_aa)Úcreate_conv2d)Úget_norm_act_layerc            &       ó2  ‡ — e Zd Zddddddddej                  ej
                  dddddddfdededed	ed
edededededede	de
e	   de
e	   de
eej                        de
eeef      de
eeef      de
eeef      f"ˆ fd„Zed„ «       Zed„ «       Zd„ Zˆ xZS )ÚConvNormActr   Ú FTNÚin_channelsÚout_channelsÚkernel_sizeÚstrideÚpaddingÚdilationÚgroupsÚbiasÚ
apply_normÚ	apply_actÚ
norm_layerÚ	act_layerÚaa_layerÚ
drop_layerÚconv_kwargsÚnorm_kwargsÚ
act_kwargsc           	      ó¬  •— ||dœ}t         ‰| �  «        i |¥|xs i ¥}i |¥|xs i ¥}|xs i }|d uxr |dkD  }t        |||f|rdn|||||dœ|¤Ž| _        |	r%t	        ||«      }|r||d<    ||f|
|dœ|¤Ž| _        nAt        j                  «       | _        |r&||d<   | j
                  j                  d |«       «       t        ||f||d dœ|¤Ž| _
        y )N)ÚdeviceÚdtyper   )r   r   r   r   r   r   )r   r!   Údrop)r   ÚenableÚnoop)ÚsuperÚ__init__r   Úconvr   Úbnr   Ú
SequentialÚ
add_moduler   Úaa)Úselfr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r#   r$   ÚddÚuse_aaÚnorm_act_layerÚ	__class__s                          €úb/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/timm/layers/conv_bn_act.pyr)   zConvNormAct.__init__   s8  ø€ ð, ¨Ñ/ˆÜ‰ÑÔØ3˜Ð3 Ò 1¨rÐ3ˆØ3˜Ð3 Ò 1¨rÐ3ˆØÒ% 2ˆ
Ø Ð%Ò4¨&°1©*ˆä!ØØØð

ñ ‘1 FØØØØñ

ð ñ

ˆŒ	ñ ä/°
¸IÓFˆNáØ,6�˜LÑ)Ù$Øðà#Ø%ñð ñ	ˆD�Gô —m‘m“oˆDŒGÙØ,6�˜LÑ)Ø—‘×"Ñ" 6©:«<Ô8äØØð
ð ØØñ
ð ñ
ˆ�ó    c                 ó.   — | j                   j                  S ©N)r*   r   ©r/   s    r4   r   zConvNormAct.in_channelsT   s   € à�y‰y×$Ñ$Ð$r5   c                 ó.   — | j                   j                  S r7   )r*   r   r8   s    r4   r   zConvNormAct.out_channelsX   s   € à�y‰y×%Ñ%Ð%r5   c                 óŠ   — | j                  |«      }| j                  |«      }t        | dd «      }|�| j                  |«      }|S )Nr.   )r*   r+   Úgetattrr.   )r/   Úxr.   s      r4   ÚforwardzConvNormAct.forward\   sA   € Ø�I‰I�a‹LˆØ�G‰G�A‹JˆÜ�T˜4 Ó&ˆØˆ>Ø—‘˜“
ˆAØˆr5   )Ú__name__Ú
__module__Ú__qualname__r   ÚBatchNorm2dÚReLUÚintr
   Úboolr	   r   r   ÚModuler   Ústrr   r)   Úpropertyr   r   r=   Ú__classcell__)r3   s   @r4   r   r      sk  ø„ ð
  !ØØ!ØØØØ#Ø"Ø$&§N¡NØ-/¯W©WØ,0Ø48Ø48Ø48Ø37ØØñ)B
àðB
ð ðB
ð ð	B
ð
 ðB
ð ðB
ð ðB
ð ðB
ð ðB
ð ðB
ð ðB
ð "ðB
ð   	Ñ*ðB
ð ˜yÑ)ðB
ð !  b§i¡i¡Ñ1ðB
ð  " $ s¨C x¡.Ñ1ð!B
ð" " $ s¨C x¡.Ñ1ð#B
ð$ !  c¨3 h¡Ñ0õ%B
ðH ñ%ó ð%ð ñ&ó ð&ör5   r   N)Ú__doc__Útypingr   r   r   r   Útorchr   r	   r
   Ú	blur_poolr   r   Úcreate_norm_actr   rE   r   Ú	ConvBnActÚConvNormActAa© r5   r4   ú<module>rQ      s@   ðñ÷ -Ó ,å ç &Ý  Ý (Ý /ôS�"—)‘)ô Sðl €	Ø�r5   