





import os
from distutils.util import strtobool



def    __lowercase   (      _SCREAMING_SNAKE_CASE ,						_SCREAMING_SNAKE_CASE	) ->   Tuple:


      '''simple docstring'''


      for e in env_keys:
            SCREAMING_SNAKE_CASE		=						int(os.environ.get(_SCREAMING_SNAKE_CASE ,						-1	)	)
            if val >= 0:
                  return val
      return default



def    __lowercase   (      _SCREAMING_SNAKE_CASE ,						_SCREAMING_SNAKE_CASE=False	) ->   Optional[int]:


      '''simple docstring'''


      SCREAMING_SNAKE_CASE		=						os.environ.get(_SCREAMING_SNAKE_CASE ,						str(_SCREAMING_SNAKE_CASE	)	)
      return strtobool(_SCREAMING_SNAKE_CASE	) == 1  # As its name indicates `strtobool` actually returns an int...



def    __lowercase   (      _SCREAMING_SNAKE_CASE ,						_SCREAMING_SNAKE_CASE="no"	) ->   Any:


      '''simple docstring'''


      SCREAMING_SNAKE_CASE		=						os.environ.get(_SCREAMING_SNAKE_CASE ,						str(_SCREAMING_SNAKE_CASE	)	)
      return value









from typing import List

from ...configuration_utils import PretrainedConfig
from ...utils import logging


SCREAMING_SNAKE_CASE_						   =       logging.get_logger(__name__)

SCREAMING_SNAKE_CASE_						   =       {
    """snap-research/efficientformer-l1-300""": (
        """https://huggingface.co/snap-research/efficientformer-l1-300/resolve/main/config.json"""
    ),
}

class 		UpperCamelCase__ (      lowerCAmelCase_   ):



     '''simple docstring'''

     __snake_case    :	int			=			"efficientformer"






     def __init__(							self						:    Optional[int]						,lowerCamelCase__						:    List[int] = [3, 2, 6, 4]						,lowerCamelCase__						:    List[int] = [48, 96, 224, 448]						,lowerCamelCase__						:    List[bool] = [True, True, True, True]						,lowerCamelCase__						:    int = 448						,lowerCamelCase__						:    int = 32						,lowerCamelCase__						:    int = 4						,lowerCamelCase__						:    int = 7						,lowerCamelCase__						:    int = 5						,lowerCamelCase__						:    int = 8						,lowerCamelCase__						:    int = 4						,lowerCamelCase__						:    float = 0.0						,lowerCamelCase__						:    int = 16						,lowerCamelCase__						:    int = 3						,lowerCamelCase__						:    int = 3						,lowerCamelCase__						:    int = 3						,lowerCamelCase__						:    int = 2						,lowerCamelCase__						:    int = 1						,lowerCamelCase__						:    float = 0.0						,lowerCamelCase__						:    int = 1						,lowerCamelCase__						:    bool = True						,lowerCamelCase__						:    bool = True						,lowerCamelCase__						:    float = 1e-5						,lowerCamelCase__						:    str = "gelu"						,lowerCamelCase__						:    float = 0.02						,lowerCamelCase__						:    float = 1e-1_2						,lowerCamelCase__						:    int = 224						,lowerCamelCase__						:    float = 1e-0_5						,**lowerCamelCase__						:    str						,)     ->		None:




           '''simple docstring'''


           super().__init__(**lowerCamelCase__       )

           SCREAMING_SNAKE_CASE		=						hidden_act
           SCREAMING_SNAKE_CASE		=						hidden_dropout_prob
           SCREAMING_SNAKE_CASE		=						hidden_sizes
           SCREAMING_SNAKE_CASE		=						num_hidden_layers
           SCREAMING_SNAKE_CASE		=						num_attention_heads
           SCREAMING_SNAKE_CASE		=						initializer_range
           SCREAMING_SNAKE_CASE		=						layer_norm_eps
           SCREAMING_SNAKE_CASE		=						patch_size
           SCREAMING_SNAKE_CASE		=						num_channels
           SCREAMING_SNAKE_CASE		=						depths
           SCREAMING_SNAKE_CASE		=						mlp_expansion_ratio
           SCREAMING_SNAKE_CASE		=						downsamples
           SCREAMING_SNAKE_CASE		=						dim
           SCREAMING_SNAKE_CASE		=						key_dim
           SCREAMING_SNAKE_CASE		=						attention_ratio
           SCREAMING_SNAKE_CASE		=						resolution
           SCREAMING_SNAKE_CASE		=						pool_size
           SCREAMING_SNAKE_CASE		=						downsample_patch_size
           SCREAMING_SNAKE_CASE		=						downsample_stride
           SCREAMING_SNAKE_CASE		=						downsample_pad
           SCREAMING_SNAKE_CASE		=						drop_path_rate
           SCREAMING_SNAKE_CASE		=						num_metaad_blocks
           SCREAMING_SNAKE_CASE		=						distillation
           SCREAMING_SNAKE_CASE		=						use_layer_scale
           SCREAMING_SNAKE_CASE		=						layer_scale_init_value
           SCREAMING_SNAKE_CASE		=						image_size
           SCREAMING_SNAKE_CASE		=						batch_norm_eps


