


"""simple docstring"""




from collections import OrderedDict
from typing import Mapping

from packaging import version

from ...configuration_utils import PretrainedConfig
from ...onnx import OnnxConfig
from ...utils import logging


__SCREAMING_SNAKE_CASE					=						logging.get_logger(__name__)

__SCREAMING_SNAKE_CASE					=						{
    """apple/mobilevit-small""": """https://huggingface.co/apple/mobilevit-small/resolve/main/config.json""",
    """apple/mobilevit-x-small""": """https://huggingface.co/apple/mobilevit-x-small/resolve/main/config.json""",
    """apple/mobilevit-xx-small""": """https://huggingface.co/apple/mobilevit-xx-small/resolve/main/config.json""",
    """apple/deeplabv3-mobilevit-small""": (
        """https://huggingface.co/apple/deeplabv3-mobilevit-small/resolve/main/config.json"""
    ),
    """apple/deeplabv3-mobilevit-x-small""": (
        """https://huggingface.co/apple/deeplabv3-mobilevit-x-small/resolve/main/config.json"""
    ),
    """apple/deeplabv3-mobilevit-xx-small""": (
        """https://huggingface.co/apple/deeplabv3-mobilevit-xx-small/resolve/main/config.json"""
    ),
    # See all MobileViT models at https://huggingface.co/models?filter=mobilevit
}





class __snake_case		(					_SCREAMING_SNAKE_CASE      ):







   """simple docstring"""




   lowerCAmelCase_				:   Dict     	=			'mobilevit'




   def __init__(		self							:List[Any]				,  UpperCamelCase__							:Tuple=3				,  UpperCamelCase__							:Optional[int]=256				,  UpperCamelCase__							:Union[str, Any]=2				,  UpperCamelCase__							:List[Any]=[144, 192, 240]				,  UpperCamelCase__							:Optional[Any]=[16, 32, 64, 96, 128, 160, 640]				,  UpperCamelCase__							:Any=4				,  UpperCamelCase__							:int=2.0				,  UpperCamelCase__							:Dict=4.0				,  UpperCamelCase__							:Dict="silu"				,  UpperCamelCase__							:List[Any]=3				,  UpperCamelCase__							:List[str]=32				,  UpperCamelCase__							:Union[str, Any]=0.1				,  UpperCamelCase__							:List[Any]=0.0				,  UpperCamelCase__							:int=0.1				,  UpperCamelCase__							:List[Any]=0.02				,  UpperCamelCase__							:List[str]=1E-5				,  UpperCamelCase__							:List[str]=True				,  UpperCamelCase__							:List[Any]=256				,  UpperCamelCase__							:Optional[int]=[6, 12, 18]				,  UpperCamelCase__							:Any=0.1				,  UpperCamelCase__							:List[str]=255				,  **UpperCamelCase__							:Any				,  ):
          super().__init__(**UpperCamelCase__       )

          _a          =				num_channels
          _a          =				image_size
          _a          =				patch_size
          _a          =				hidden_sizes
          _a          =				neck_hidden_sizes
          _a          =				num_attention_heads
          _a          =				mlp_ratio
          _a          =				expand_ratio
          _a          =				hidden_act
          _a          =				conv_kernel_size
          _a          =				output_stride
          _a          =				hidden_dropout_prob
          _a          =				attention_probs_dropout_prob
          _a          =				classifier_dropout_prob
          _a          =				initializer_range
          _a          =				layer_norm_eps
          _a          =				qkv_bias

          # decode head attributes for semantic segmentation
          _a          =				aspp_out_channels
          _a          =				atrous_rates
          _a          =				aspp_dropout_prob
          _a          =				semantic_loss_ignore_index






class __snake_case		(					_SCREAMING_SNAKE_CASE      ):







   """simple docstring"""




   lowerCAmelCase_				:   int     	=			version.parse('1.11'      )




   @property
   def SCREAMING_SNAKE_CASE_      (		self							:Union[str, Any]       ):
          return OrderedDict([("pixel_values", {0: "batch", 1: "num_channels", 2: "height", 3: "width"})]       )




   @property
   def SCREAMING_SNAKE_CASE_      (		self							:List[Any]       ):
          if self.task == "image-classification":
                 return OrderedDict([("logits", {0: "batch"})]       )
          else:
                 return OrderedDict([("last_hidden_state", {0: "batch"}), ("pooler_output", {0: "batch"})]       )




   @property
   def SCREAMING_SNAKE_CASE_      (		self							:Dict       ):
          return 1E-4




"""simple docstring"""




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


__SCREAMING_SNAKE_CASE					=						logging.get_logger(__name__)

__SCREAMING_SNAKE_CASE					=						{
    """bert-base-uncased""": """https://huggingface.co/bert-base-uncased/resolve/main/config.json""",
    # QDQBERT models can be loaded from any BERT checkpoint, available at https://huggingface.co/models?filter=bert
}





class __snake_case		(					_SCREAMING_SNAKE_CASE      ):







   """simple docstring"""




   lowerCAmelCase_				:   Tuple     	=			'qdqbert'




   def __init__(		self							:List[Any]				,  UpperCamelCase__							:List[Any]=30_522				,  UpperCamelCase__							:Optional[int]=768				,  UpperCamelCase__							:str=12				,  UpperCamelCase__							:Tuple=12				,  UpperCamelCase__							:Any=3_072				,  UpperCamelCase__							:Union[str, Any]="gelu"				,  UpperCamelCase__							:Dict=0.1				,  UpperCamelCase__							:Any=0.1				,  UpperCamelCase__							:Dict=512				,  UpperCamelCase__							:Optional[int]=2				,  UpperCamelCase__							:Any=0.02				,  UpperCamelCase__							:Optional[int]=1E-12				,  UpperCamelCase__							:str=True				,  UpperCamelCase__							:str=1				,  UpperCamelCase__							:List[Any]=0				,  UpperCamelCase__							:List[str]=2				,  **UpperCamelCase__							:Optional[Any]				,  ):
          super().__init__(pad_token_id=UpperCamelCase__				,  bos_token_id=UpperCamelCase__				,  eos_token_id=UpperCamelCase__				,  **UpperCamelCase__       )

          _a          =				vocab_size
          _a          =				max_position_embeddings
          _a          =				hidden_size
          _a          =				num_hidden_layers
          _a          =				num_attention_heads
          _a          =				intermediate_size
          _a          =				hidden_act
          _a          =				hidden_dropout_prob
          _a          =				attention_probs_dropout_prob
          _a          =				initializer_range
          _a          =				type_vocab_size
          _a          =				layer_norm_eps
          _a          =				use_cache
