





'''simple docstring'''

from collections import OrderedDict
from typing import List, Mapping

from packaging import version

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


a        =						logging.get_logger(__name__)

a        =						{
    'google/efficientnet-b7': 'https://huggingface.co/google/efficientnet-b7/resolve/main/config.json',
}







class __a (   _snake_case			):
   __UpperCamelCase   : List[str]	      =	'efficientnet'





   def __init__(					self				:			int				,lowerCamelCase				:			int = 3				,lowerCamelCase				:			int = 600				,lowerCamelCase				:			float = 2.0				,lowerCamelCase				:			float = 3.1				,lowerCamelCase				:			int = 8				,lowerCamelCase				:			List[int] = [3, 3, 5, 3, 5, 5, 3]				,lowerCamelCase				:			List[int] = [32, 16, 24, 40, 80, 112, 192]				,lowerCamelCase				:			List[int] = [16, 24, 40, 80, 112, 192, 320]				,lowerCamelCase				:			List[int] = []				,lowerCamelCase				:			List[int] = [1, 2, 2, 2, 1, 2, 1]				,lowerCamelCase				:			List[int] = [1, 2, 2, 3, 3, 4, 1]				,lowerCamelCase				:			List[int] = [1, 6, 6, 6, 6, 6, 6]				,lowerCamelCase				:			float = 0.25				,lowerCamelCase				:			str = "swish"				,lowerCamelCase				:			int = 2560				,lowerCamelCase				:			str = "mean"				,lowerCamelCase				:			float = 0.02				,lowerCamelCase				:			float = 0.001				,lowerCamelCase				:			float = 0.99				,lowerCamelCase				:			float = 0.5				,lowerCamelCase				:			float = 0.2				,**lowerCamelCase				:			List[str]				,):

      '''simple docstring'''

      super().__init__(**UpperCAmelCase__    )

      __SCREAMING_SNAKE_CASE      							=       num_channels
      __SCREAMING_SNAKE_CASE      							=       image_size
      __SCREAMING_SNAKE_CASE      							=       width_coefficient
      __SCREAMING_SNAKE_CASE      							=       depth_coefficient
      __SCREAMING_SNAKE_CASE      							=       depth_divisor
      __SCREAMING_SNAKE_CASE      							=       kernel_sizes
      __SCREAMING_SNAKE_CASE      							=       in_channels
      __SCREAMING_SNAKE_CASE      							=       out_channels
      __SCREAMING_SNAKE_CASE      							=       depthwise_padding
      __SCREAMING_SNAKE_CASE      							=       strides
      __SCREAMING_SNAKE_CASE      							=       num_block_repeats
      __SCREAMING_SNAKE_CASE      							=       expand_ratios
      __SCREAMING_SNAKE_CASE      							=       squeeze_expansion_ratio
      __SCREAMING_SNAKE_CASE      							=       hidden_act
      __SCREAMING_SNAKE_CASE      							=       hidden_dim
      __SCREAMING_SNAKE_CASE      							=       pooling_type
      __SCREAMING_SNAKE_CASE      							=       initializer_range
      __SCREAMING_SNAKE_CASE      							=       batch_norm_eps
      __SCREAMING_SNAKE_CASE      							=       batch_norm_momentum
      __SCREAMING_SNAKE_CASE      							=       dropout_rate
      __SCREAMING_SNAKE_CASE      							=       drop_connect_rate
      __SCREAMING_SNAKE_CASE      							=       sum(UpperCAmelCase__    ) * 4







class __a (   _snake_case			):
   __UpperCamelCase   : List[str]	      =	version.parse('1.11'			)





   @property
   def      UpperCAmelCase__     (					self				:			str    ):

      '''simple docstring'''

      return OrderedDict(
          [
              ("""pixel_values""", {0: """batch""", 1: """num_channels""", 2: """height""", 3: """width"""}),
          ]    )





   @property
   def      UpperCAmelCase__     (					self				:			Tuple    ):

      '''simple docstring'''

      return 1E-5







'''simple docstring'''

def 						__magic_name__       (							__UpperCAmelCase = 1							,	__UpperCAmelCase = 1000      )						->					int:

   '''simple docstring'''







   __SCREAMING_SNAKE_CASE      							=       1
   __SCREAMING_SNAKE_CASE      							=       0

   for divide_by_number in range(__UpperCAmelCase							,	digit + 1      ):
      __SCREAMING_SNAKE_CASE      							=       []
      __SCREAMING_SNAKE_CASE      							=       numerator
      for _ in range(1							,	digit + 1      ):
         if now_divide in has_been_divided:
            if longest_list_length < len(__UpperCAmelCase      ):
               __SCREAMING_SNAKE_CASE      							=       len(__UpperCAmelCase      )
               __SCREAMING_SNAKE_CASE      							=       divide_by_number
         else:
            has_been_divided.append(__UpperCAmelCase      )
            __SCREAMING_SNAKE_CASE      							=       now_divide * 10 % divide_by_number

   return the_digit


# Tests
if __name__ == "__main__":
    import doctest

    doctest.testmod()





