Ë
    éÓ^jË  ã                   ól   — d dl Z d dl mZ  G d„ dej                  «      Z G d„ dej                  «      Zy)é    N)Únnc            	       ó|   ‡ — e Zd ZdZ	 	 	 	 ddedededdfˆ fd„Zd„ Zd	e	j                  de	j                  fd
„Zˆ xZS )Ú
LayerScalez6 LayerScale on tensors with channels in last-dim.
    NÚdimÚinit_valuesÚinplaceÚreturnc                 ó¾   •— t         ‰| �  «        || _        || _        t	        j
                  t        j                  |||¬«      «      | _        | j                  «        y ©N)ÚdeviceÚdtype©
ÚsuperÚ__init__r   r   r   Ú	ParameterÚtorchÚemptyÚgammaÚreset_parameters©Úselfr   r   r   r   r   Ú	__class__s         €úb/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/timm/layers/layer_scale.pyr   zLayerScale.__init__   óH   ø€ ô 	‰ÑÔØ&ˆÔØˆŒÜ—\‘\¤%§+¡+¨c¸&ÈÔ"NÓOˆŒ
à×ÑÕó    c                 ó€   — t         j                  j                  j                  | j                  | j
                  «       y ©N©r   r   ÚinitÚ	constant_r   r   ©r   s    r   r   zLayerScale.reset_parameters   ó$   € Ü�‰�‰×Ñ §
¡
¨D×,<Ñ,<Õ=r   Úxc                 ón   — | j                   r|j                  | j                  «      S || j                  z  S r   )r   Úmul_r   )r   r#   s     r   ÚforwardzLayerScale.forward   s(   € Ø%)§\¢\ˆq�v‰v�d—j‘jÓ!ÐE°q¸4¿:¹:±~ÐEr   ©gñhãˆµøä>FNN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚintÚfloatÚboolr   r   r   ÚTensorr&   Ú__classcell__©r   s   @r   r   r      sd   ø„ ñð
 "&Ø!ØØñ àð ð ð ð ð	 ð 
õ ò>ðF˜Ÿ™ð F¨%¯,©,÷ Fr   r   c                   óF   ‡ — e Zd ZdZ	 	 	 	 ddededefˆ fd„Zd„ Zd„ Z	ˆ xZ
S )	ÚLayerScale2dz7 LayerScale for tensors with torch 2D NCHW layout.
    r   r   r   c                 ó¾   •— t         ‰| �  «        || _        || _        t	        j
                  t        j                  |||¬«      «      | _        | j                  «        y r   r   r   s         €r   r   zLayerScale2d.__init__!   r   r   c                 ó€   — t         j                  j                  j                  | j                  | j
                  «       y r   r   r!   s    r   r   zLayerScale2d.reset_parameters0   r"   r   c                 ó‚   — | j                   j                  dddd«      }| j                  r|j                  |«      S ||z  S )Né   éÿÿÿÿ)r   Úviewr   r%   )r   r#   r   s      r   r&   zLayerScale2d.forward3   s7   € Ø—
‘
—‘  2 q¨!Ó,ˆØ $§¢ˆq�v‰v�e‹}Ð;°!°e±)Ð;r   r'   )r(   r)   r*   r+   r,   r-   r.   r   r   r&   r0   r1   s   @r   r3   r3      sA   ø„ ñð
 "&Ø!ØØñ àð ð ð ð õ	 ò>ö<r   r3   )r   r   ÚModuler   r3   © r   r   ú<module>r<      s-   ðÛ Ý ôF�—‘ô Fô2<�2—9‘9õ <r   