
    RЦi                     l    S SK r S SK Jr   " S S\R                  5      r " S S\R                  5      rg)    N)nnc            	          ^  \ rS rSrSr    SS\S\S\SS4U 4S jjjrS	 r	S
\
R                  S\
R                  4S jrSrU =r$ )
LayerScale   z5LayerScale on tensors with channels in last-dim.
    Ndiminit_valuesinplacereturnc                    > [         TU ]  5         X l        X0l        [        R
                  " [        R                  " XUS95      U l        U R                  5         g N)devicedtype
super__init__r   r	   r   	Parametertorchemptygammareset_parametersselfr   r   r	   r   r   	__class__s         V/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/timm/layers/layer_scale.pyr   LayerScale.__init__   B     	&\\%++c"NO
    c                     [         R                  R                  R                  U R                  U R
                  5        g Nr   r   init	constant_r   r   r   s    r   r   LayerScale.reset_parameters   $    

D,<,<=r   xc                 v    U R                   (       a  UR                  U R                  5      $ XR                  -  $ r   )r	   mul_r   )r   r&   s     r   forwardLayerScale.forward   s&    %)\\qvvdjj!Eq::~Er   r   r   r	   gh㈵>FNN)__name__
__module____qualname____firstlineno____doc__intfloatboolr   r   r   Tensorr)   __static_attributes____classcell__r   s   @r   r   r      so    
 "&!     	  
   >F F%,, F Fr   r   c                   T   ^  \ rS rSrSr    S
S\S\S\4U 4S jjjrS r	S r
S	rU =r$ )LayerScale2d   z6LayerScale for tensors with torch 2D NCHW layout.
    r   r   r	   c                    > [         TU ]  5         X l        X0l        [        R
                  " [        R                  " XUS95      U l        U R                  5         g r   r   r   s         r   r   LayerScale2d.__init__!   r   r   c                     [         R                  R                  R                  U R                  U R
                  5        g r   r    r#   s    r   r   LayerScale2d.reset_parameters0   r%   r   c                     U R                   R                  SSSS5      nU R                  (       a  UR                  U5      $ X-  $ )N   )r   viewr	   r(   )r   r&   r   s      r   r)   LayerScale2d.forward3   s5    

2q!, $qvve};!);r   r+   r,   )r-   r.   r/   r0   r1   r2   r3   r4   r   r   r)   r6   r7   r8   s   @r   r:   r:      sK    
 "&!     	   >< <r   r:   )r   r   Moduler   r:    r   r   <module>rG      s-     F F2<299 <r   