
    |2g4                     Z    d dl mZ d dlZd dlmZ d dlmZ  G d dej
                        Zy)    )UnionN)Tensor)nnc            	       P     e Zd Z	 	 d	dedeeef   deddf fdZdedefdZ	 xZ
S )

LayerScale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       O/home/cameronsmith/repos/FeatUp/featup/featurizers/dinov2/layers/layer_scale.pyr   zLayerScale.__init__   s4     	\\+

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__intr   floatr   boolr   r   __classcell__)r   s   @r   r   r      sZ     -1	AA 5&=)A 	A
 
AF FF Fr   r   )typingr   r   r   r   Moduler    r   r   <module>r&      s%       F Fr   