



from ...configuration_utils import PretrainedConfig
from ...utils import logging
from ...utils.backbone_utils import BackboneConfigMixin, get_aligned_output_features_output_indices


__snake_case       :	Optional[int]            =logging.get_logger(__name__)

__snake_case       :	Union[str, Any]            ={
    'microsoft/focalnet-tiny': 'https://huggingface.co/microsoft/focalnet-tiny/resolve/main/config.json',
}



class  lowerCamelCase__    (							lowerCamelCase__   ,       lowerCamelCase__):




  '''simple docstring'''



  snake_case_			="""focalnet"""



  def __init__(self	,__lowerCamelCase=2_24	,__lowerCamelCase=4	,__lowerCamelCase=3	,__lowerCamelCase=96	,__lowerCamelCase=False	,__lowerCamelCase=[1_92, 3_84, 7_68, 7_68]	,__lowerCamelCase=[2, 2, 6, 2]	,__lowerCamelCase=[2, 2, 2, 2]	,__lowerCamelCase=[3, 3, 3, 3]	,__lowerCamelCase="gelu"	,__lowerCamelCase=4.0	,__lowerCamelCase=0.0	,__lowerCamelCase=0.1	,__lowerCamelCase=False	,__lowerCamelCase=1e-4	,__lowerCamelCase=False	,__lowerCamelCase=False	,__lowerCamelCase=False	,__lowerCamelCase=0.02	,__lowerCamelCase=1e-5	,__lowerCamelCase=32	,__lowerCamelCase=None	,__lowerCamelCase=None	,**__lowerCamelCase	,)  ->    List[str]:

      """simple docstring"""






      super().__init__(**__lowerCamelCase				)

      lowerCAmelCase__  :       int				=  image_size
      lowerCAmelCase__  :       int				=  patch_size
      lowerCAmelCase__  :       Union[str, Any]				=  num_channels
      lowerCAmelCase__  :       Union[str, Any]				=  embed_dim
      lowerCAmelCase__  :       Union[str, Any]				=  use_conv_embed
      lowerCAmelCase__  :       List[str]				=  hidden_sizes
      lowerCAmelCase__  :       Any				=  depths
      lowerCAmelCase__  :       Any				=  focal_levels
      lowerCAmelCase__  :       Union[str, Any]				=  focal_windows
      lowerCAmelCase__  :       Optional[Any]				=  hidden_act
      lowerCAmelCase__  :       Dict				=  mlp_ratio
      lowerCAmelCase__  :       Tuple				=  hidden_dropout_prob
      lowerCAmelCase__  :       Dict				=  drop_path_rate
      lowerCAmelCase__  :       Dict				=  use_layerscale
      lowerCAmelCase__  :       Optional[int]				=  layerscale_value
      lowerCAmelCase__  :       List[Any]				=  use_post_layernorm
      lowerCAmelCase__  :       int				=  use_post_layernorm_in_modulation
      lowerCAmelCase__  :       int				=  normalize_modulator
      lowerCAmelCase__  :       Optional[Any]				=  initializer_range
      lowerCAmelCase__  :       Tuple				=  layer_norm_eps
      lowerCAmelCase__  :       Tuple				=  encoder_stride
      lowerCAmelCase__  :       str				=  ['''stem'''] + [f"""stage{idx}""" for idx in range(1	,len(self.depths				) + 1				)]
      lowerCAmelCase__  :       Dict				=  get_aligned_output_features_output_indices(
          out_features=__lowerCamelCase	,out_indices=__lowerCamelCase	,stage_names=self.stage_names				)






from __future__ import annotations






def 			lowerCAmelCase__	(					lowerCamelCase_	:	list[int]):





				'''simple docstring'''

				return len(set(lowerCamelCase_)) == len(lowerCamelCase_)


if __name__ == "__main__":
							import doctest

							doctest.testmod()

