

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


lowercase__         =      logging.get_logger(__name__)

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




class 	A_			(    a_							):






     '''simple docstring'''



     UpperCAmelCase_						:     Dict  		=  """efficientnet"""


     def __init__(		self			:					Union[str, Any]					,      lowercase_			:					int = 3					,      lowercase_			:					int = 600					,      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, 112, 192]					,      lowercase_			:					List[int] = [16, 24, 40, 80, 112, 192, 320]					,      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 = 2_560					,      lowercase_			:					str = "mean"					,      lowercase_			:					float = 0.02					,      lowercase_			:					float = 0.001					,      lowercase_			:					float = 0.99					,      lowercase_			:					float = 0.5					,      lowercase_			:					float = 0.2					,      **lowercase_			:					str					,      )						->     str:
      super().__init__(**lowercase_	)

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




class 	A_			(    a_							):






     '''simple docstring'''



     UpperCAmelCase_						:     Any  		=  version.parse("""1.11"""							)


     @property
     def        UpperCAmelCase_	(		self			:					Dict	)						->     Dict:
      return OrderedDict(
          [
              ('pixel_values', {0: 'batch', 1: 'num_channels', 2: 'height', 3: 'width'}),
          ]	)




     @property
     def        UpperCAmelCase_	(		self			:					Optional[int]	)						->     List[Any]:
      return 1E-5







'''simple docstring'''

def 				UpperCamelCase(					UpperCAmelCase_  ,	UpperCAmelCase_     ):
 if b == 0:
  return 1
 if (b % 2) == 0:
  return actual_power(UpperCAmelCase_  ,	int(b / 2     )     ) * actual_power(UpperCAmelCase_  ,	int(b / 2     )     )
 else:
  return a * actual_power(UpperCAmelCase_  ,	int(b / 2     )     ) * actual_power(UpperCAmelCase_  ,	int(b / 2     )     )




def 				UpperCamelCase(					UpperCAmelCase_  ,	UpperCAmelCase_     ):
 if b < 0:
  return 1 / actual_power(UpperCAmelCase_  ,	UpperCAmelCase_     )
 return actual_power(UpperCAmelCase_  ,	UpperCAmelCase_     )


if __name__ == "__main__":
 print(power(-2, -3))




