
     h                     B    d dl Z d dlmZ  G d dej                        Zy)    Nc                   (     e Zd ZdZ fdZd Z xZS )
RandomMaskz
    random masking
    c                 j    t         |           || _        t        || j                  z        | _        y )N)super__init__num_patchesintnum_mask)selfr   
mask_ratio	__class__s      B/home/cameronsmith/repos/controll3r/dust3r/croco/models/masking.pyr   zRandomMask.__init__   s-    &J)9)99:    c                     t        j                  |j                  d      | j                  |j                        }t        j
                  |d      }|| j                  k  S )Nr   )device   )dim)torchrandsizer   r   argsortr
   )r   xnoiser   s       r   __call__zRandomMask.__call__   sE    

166!9d&6&6qxxH--1-&&r   )__name__
__module____qualname____doc__r   r   __classcell__)r   s   @r   r   r      s    ;
'r   r   )r   torch.nnnnModuler    r   r   <module>r$      s     ' 'r   