
    kh                     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            	       r     e Zd ZdZ	 	 d
dedededdf fdZdej                  dej                  fd	Z
 xZS )
LayerScalez6 LayerScale on tensors with channels in last-dim.
    diminit_valuesinplacereturnNc                     t         |           || _        t        j                  |t        j                  |      z        | _        y Nsuper__init__r   r   	Parametertorchonesgammaselfr   r   r   	__class__s       S/var/www/teggl/fontify/venv/lib/python3.12/site-packages/timm/layers/layer_scale.pyr   zLayerScale.__init__   4     	\\+

3"?@
    xc                 n    | j                   r|j                  | j                        S || j                  z  S r   )r   mul_r   )r   r   s     r   forwardzLayerScale.forward   s(    %)\\qvvdjj!Eq4::~Er   gh㈵>F)__name__
__module____qualname____doc__intfloatboolr   r   Tensorr   __classcell__r   s   @r   r   r      s^    
 "&!	AA A 	A
 
AF F%,, Fr   r   c                   <     e Zd ZdZ	 	 ddededef f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                  |      z        | _        y r   r   r   s       r   r   zLayerScale2d.__init__   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.forward#   s7    

2q!, $qvve};!e);r   r   )
r   r   r    r!   r"   r#   r$   r   r   r&   r'   s   @r   r)   r)      s:    
 "&!	AA A 	A<r   r)   )r   r   Moduler   r)    r   r   <module>r1      s-     F F"<299 <r   