






'''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


UpperCamelCase__			=      logging.get_logger(__name__)

UpperCamelCase__			=      {
    'google/mobilenet_v1_1.0_224': 'https://huggingface.co/google/mobilenet_v1_1.0_224/resolve/main/config.json',
    'google/mobilenet_v1_0.75_192': 'https://huggingface.co/google/mobilenet_v1_0.75_192/resolve/main/config.json',
    # See all MobileNetV1 models at https://huggingface.co/models?filter=mobilenet_v1
}


class 							_UpperCAmelCase    (		SCREAMING_SNAKE_CASE_      ):
    __lowerCamelCase: Dict									=     'mobilenet_v1'




    def __init__(      self	:							str	,  a	:							Dict=3	,  a	:							List[Any]=2_2_4	,  a	:							Dict=1.0	,  a	:							Any=8	,  a	:							Union[str, Any]="relu6"	,  a	:							Dict=True	,  a	:							Dict=0.999	,  a	:							Tuple=0.02	,  a	:							Tuple=0.001	,  **a	:							Any	,  ):






       '''simple docstring'''






       super().__init__(**snake_case__      )

       if depth_multiplier <= 0:
          raise ValueError("depth_multiplier must be greater than zero."      )

       lowercase_						:     List[str]							     =  num_channels
       lowercase_						:     Union[str, Any]							     =  image_size
       lowercase_						:     Optional[Any]							     =  depth_multiplier
       lowercase_						:     Optional[Any]							     =  min_depth
       lowercase_						:     Any							     =  hidden_act
       lowercase_						:     Tuple							     =  tf_padding
       lowercase_						:     Dict							     =  classifier_dropout_prob
       lowercase_						:     int							     =  initializer_range
       lowercase_						:     Union[str, Any]							     =  layer_norm_eps


class 							_UpperCAmelCase    (		SCREAMING_SNAKE_CASE_      ):
    __lowerCamelCase: int									=     version.parse('1.11'      )




    @property
    def 					lowerCAmelCase__					(      self	:							Optional[Any]      ):






       '''simple docstring'''






       return OrderedDict([("pixel_values", {0: "batch"})]      )




    @property
    def 					lowerCAmelCase__					(      self	:							Any      ):






       '''simple docstring'''






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





    @property
    def 					lowerCAmelCase__					(      self	:							List[str]      ):






       '''simple docstring'''






       return 1e-4





from abc import ABC, abstractmethod
from argparse import ArgumentParser





class     lowerCAmelCase__     (				SCREAMING_SNAKE_CASE_			):


		'''simple docstring'''






		@staticmethod
		@abstractmethod
		def   _snake_case       (       snake_case__     :     ArgumentParser		)      ->	Tuple:
				raise NotImplementedError()



		@abstractmethod
		def   _snake_case       (       self     :     Optional[Any]		)      ->	Optional[Any]:
				raise NotImplementedError()