o
    i                     @   s6   d dl mZmZ d dlmZmZ G dd dejZdS )    )CallableOptional)Tensornnc                       sl   e Zd Zddejddfdedee dee dedejf d	e	d
e
ddf fddZdedefddZ  ZS )MlpNg        Tin_featureshidden_featuresout_features	act_layer.dropbiasreturnc                    sV   t    |p|}|p|}tj|||d| _| | _tj|||d| _t|| _d S )N)r   )	super__init__r   Linearfc1actfc2Dropoutr   )selfr   r   r	   r
   r   r   	__class__ F/data/cameron/da3_repo/src/depth_anything_3/model/dinov2/layers/mlp.pyr      s   
	zMlp.__init__xc                 C   s6   |  |}| |}| |}| |}| |}|S )N)r   r   r   r   )r   r   r   r   r   forward"   s   




zMlp.forward)__name__
__module____qualname__r   GELUintr   r   Modulefloatboolr   r   r   __classcell__r   r   r   r   r      s,    r   N)typingr   r   torchr   r   r!   r   r   r   r   r   <module>   s   