
    |2g	                         d dl Z ddZy)    Nc                 0   | j                         } | dk(  rddlm} d} |d||      }d}ng| dk(  rddlm} d} ||d	   
      }d}nJ| dk(  rddlm} d} |d||      }d}n/| dk(  rddlm} d} |d||      }d}n| dk(  rddlm} d} |d||      }d}n| dk(  rddlm}	 d} |	       }d}n| dk(  rddl	m
}
 d} |
       }d}n| dk(  rddlm} d} |d/i |}d}n| dk(  rddlm} d} |       }d}n| dk(  rdd lm} d} |       }d}n| d!k(  rd}d" }d#}ny| d$k(  r dd%lm} dd&lm}  | |d'(            }d}d)}nT| d*k(  r5dd+lm} t.        j0                  j3                  d,d-d'(      } ||      }d}d)}nt5        d.j7                  |             |||fS )0Nvit   )DINOFeaturizer   vit_small_patch16_224i  midas)MIDASFeaturizeroutput_root)r   i   dino16dino_vits16dino8   
dino_vits8dinov2)DINOv2Featurizer   dinov2_vits14clip)CLIPFeaturizeri   maskclip)MaskCLIPFeaturizermae)MAEFeaturizeri   mocov3)MOCOv3Featurizermsn)MSNFeaturizerpixelsc                     | S )N )xs    :/home/cameronsmith/repos/FeatUp/featup/featurizers/util.py<lambda>z get_featurizer.<locals>.<lambda>9   s    !        resnet50)r'   )ResNetFeaturizerT)
pretrainedi   deeplab)DeepLabV3Featurizerzpytorch/vision:v0.10.0deeplabv3_resnet50zunknown model: {}r!   )lowerDINOr   MIDASr
   DINOv2r   CLIPr   MaskCLIPr   MAEr   MOCOv3r   MSNr   modules.resnetr'   ResNetr(   	DeepLabV3r+   torchhubload
ValueErrorformat)nameactivation_typekwargsr   
patch_sizemodeldimr
   r   r   r   r   r   r   r'   r(   r+   s                    r#   get_featurizerrD      s   ::<Du}(
6
OT	*
F=,AB		(
}j/J	(
|ZI		,
 *oN	(
 		0
"$	&
''		,
 "	&
		
		,, T!:;
		2		79MZ^_#E*
,33D9::*c!!r%   )key)r9   rD   r!   r%   r#   <module>rF      s    F"r%   