


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


__snake_case            =   logging.get_logger(__name__)

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




class    UpperCAmelCase					(       __snake_case    ):
			lowercase						= """efficientnet"""




			def __init__(						self							:		Tuple       ,       __magic_name__							:		int = 3       ,       __magic_name__							:		int = 6_0_0       ,       __magic_name__							:		float = 2.0       ,       __magic_name__							:		float = 3.1       ,       __magic_name__							:		int = 8       ,       __magic_name__							:		List[int] = [3, 3, 5, 3, 5, 5, 3]       ,       __magic_name__							:		List[int] = [3_2, 1_6, 2_4, 4_0, 8_0, 1_1_2, 1_9_2]       ,       __magic_name__							:		List[int] = [1_6, 2_4, 4_0, 8_0, 1_1_2, 1_9_2, 3_2_0]       ,       __magic_name__							:		List[int] = []       ,       __magic_name__							:		List[int] = [1, 2, 2, 2, 1, 2, 1]       ,       __magic_name__							:		List[int] = [1, 2, 2, 3, 3, 4, 1]       ,       __magic_name__							:		List[int] = [1, 6, 6, 6, 6, 6, 6]       ,       __magic_name__							:		float = 0.25       ,       __magic_name__							:		str = "swish"       ,       __magic_name__							:		int = 2_5_6_0       ,       __magic_name__							:		str = "mean"       ,       __magic_name__							:		float = 0.02       ,       __magic_name__							:		float = 0.001       ,       __magic_name__							:		float = 0.99       ,       __magic_name__							:		float = 0.5       ,       __magic_name__							:		float = 0.2       ,       **__magic_name__							:		Optional[int]       ,       ):







						"""simple docstring"""







						super().__init__(**__magic_name__						)

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




class    UpperCAmelCase					(       __snake_case    ):
			lowercase						= version.parse("""1.11"""    )




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







						"""simple docstring"""







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





			@property
			def   lowerCamelCase_					(						self							:		str						):







						"""simple docstring"""







						return 1e-5








from ..utils import DummyObject, requires_backends




class    UpperCAmelCase					(       metaclass=__snake_case    ):
			lowercase						= ["""keras_nlp"""]




			def __init__(						self							:		List[str]       ,       *__magic_name__							:		str       ,       **__magic_name__							:		int						):







						"""simple docstring"""







						requires_backends(self       ,       ["""keras_nlp"""]						)




