


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_ :List[str]  							=			logging.get_logger(__name__)

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

class 							lowercase  (						A_			):
     lowerCamelCase			:			str      = "efficientnet"







     def __init__(						self :						str   ,   _lowercase :						int = 3   ,   _lowercase :						int = 6_00   ,   _lowercase :						float = 2.0   ,   _lowercase :						float = 3.1   ,   _lowercase :						int = 8   ,   _lowercase :						List[int] = [3, 3, 5, 3, 5, 5, 3]   ,   _lowercase :						List[int] = [32, 16, 24, 40, 80, 1_12, 1_92]   ,   _lowercase :						List[int] = [16, 24, 40, 80, 1_12, 1_92, 3_20]   ,   _lowercase :						List[int] = []   ,   _lowercase :						List[int] = [1, 2, 2, 2, 1, 2, 1]   ,   _lowercase :						List[int] = [1, 2, 2, 3, 3, 4, 1]   ,   _lowercase :						List[int] = [1, 6, 6, 6, 6, 6, 6]   ,   _lowercase :						float = 0.25   ,   _lowercase :						str = "swish"   ,   _lowercase :						int = 25_60   ,   _lowercase :						str = "mean"   ,   _lowercase :						float = 0.02   ,   _lowercase :						float = 0.001   ,   _lowercase :						float = 0.99   ,   _lowercase :						float = 0.5   ,   _lowercase :						float = 0.2   ,   **_lowercase :						Optional[Any]   ,   ):
           super().__init__(**snake_case__      )

           SCREAMING_SNAKE_CASE__       :  Tuple						     =		num_channels
           SCREAMING_SNAKE_CASE__       :  Optional[Any]						     =		image_size
           SCREAMING_SNAKE_CASE__       :  str						     =		width_coefficient
           SCREAMING_SNAKE_CASE__       :  Optional[Any]						     =		depth_coefficient
           SCREAMING_SNAKE_CASE__       :  List[Any]						     =		depth_divisor
           SCREAMING_SNAKE_CASE__       :  str						     =		kernel_sizes
           SCREAMING_SNAKE_CASE__       :  int						     =		in_channels
           SCREAMING_SNAKE_CASE__       :  Any						     =		out_channels
           SCREAMING_SNAKE_CASE__       :  Optional[Any]						     =		depthwise_padding
           SCREAMING_SNAKE_CASE__       :  Any						     =		strides
           SCREAMING_SNAKE_CASE__       :  List[str]						     =		num_block_repeats
           SCREAMING_SNAKE_CASE__       :  Optional[int]						     =		expand_ratios
           SCREAMING_SNAKE_CASE__       :  Tuple						     =		squeeze_expansion_ratio
           SCREAMING_SNAKE_CASE__       :  Optional[Any]						     =		hidden_act
           SCREAMING_SNAKE_CASE__       :  str						     =		hidden_dim
           SCREAMING_SNAKE_CASE__       :  Optional[int]						     =		pooling_type
           SCREAMING_SNAKE_CASE__       :  List[str]						     =		initializer_range
           SCREAMING_SNAKE_CASE__       :  List[Any]						     =		batch_norm_eps
           SCREAMING_SNAKE_CASE__       :  str						     =		batch_norm_momentum
           SCREAMING_SNAKE_CASE__       :  Dict						     =		dropout_rate
           SCREAMING_SNAKE_CASE__       :  List[Any]						     =		drop_connect_rate
           SCREAMING_SNAKE_CASE__       :  Optional[int]						     =		sum(snake_case__      ) * 4




class 							lowercase  (						A_			):
     lowerCamelCase			:			List[str]      = version.parse('''1.11'''			)







     @property
     def 							lowercase__       (						self :						List[Any]      ):
           return OrderedDict(
               [
                   ('''pixel_values''', {0: '''batch''', 1: '''num_channels''', 2: '''height''', 3: '''width'''}),
               ]      )







     @property
     def 							lowercase__       (						self :						Union[str, Any]      ):
           return 1E-5








def      UpperCamelCase   (       __lowerCamelCase	:					int = 1							,   __lowerCamelCase	:					int = 1000       ):
       snake_case			:  int     							= 1
       snake_case			:  int     							= 0

       for divide_by_number in range(__lowerCamelCase							,   digit + 1       ):
              snake_case			:  list[int]     							= []
              snake_case			:  Optional[int]     							= numerator
              for _ in range(1							,   digit + 1       ):
                     if now_divide in has_been_divided:
                            if longest_list_length < len(__lowerCamelCase       ):
                                   snake_case			:  List[Any]     							= len(__lowerCamelCase       )
                                   snake_case			:  List[str]     							= divide_by_number
                     else:
                            has_been_divided.append(__lowerCamelCase       )
                            snake_case			:  Any     							= now_divide * 10 % divide_by_number

       return the_digit


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

   doctest.testmod()





