
"""simple docstring"""


from typing import List

from ...configuration_utils import PretrainedConfig
from ...utils import logging


_lowercase							      = logging.get_logger(__name__)

_lowercase							      = {
    '''snap-research/efficientformer-l1-300''': (
        '''https://huggingface.co/snap-research/efficientformer-l1-300/resolve/main/config.json'''
    ),
}







class  lowerCAmelCase_ (					_snake_case			):



						'''simple docstring'''


						_lowerCamelCase:			Optional[int]					=			'''efficientformer'''


						def __init__(       self   :					List[Any]     ,A_   :					Tuple = [3, 2, 6, 4]     ,A_   :					Dict = [48, 96, 224, 448]     ,A_   :					Any = [True, True, True, True]     ,A_   :					Optional[Any] = 448     ,A_   :					List[Any] = 32     ,A_   :					int = 4     ,A_   :					Optional[int] = 7     ,A_   :					List[str] = 5     ,A_   :					Union[str, Any] = 8     ,A_   :					List[Any] = 4     ,A_   :					Optional[Any] = 0.0     ,A_   :					str = 16     ,A_   :					Any = 3     ,A_   :					int = 3     ,A_   :					Union[str, Any] = 3     ,A_   :					Union[str, Any] = 2     ,A_   :					int = 1     ,A_   :					List[Any] = 0.0     ,A_   :					Tuple = 1     ,A_   :					List[str] = True     ,A_   :					Dict = True     ,A_   :					Optional[Any] = 1e-5     ,A_   :					Optional[int] = "gelu"     ,A_   :					Optional[Any] = 0.02     ,A_   :					int = 1e-12     ,A_   :					Union[str, Any] = 224     ,A_   :					Any = 1e-05     ,**A_   :					List[str]     ,)   ->      None:
							super().__init__(**_UpperCamelCase					)

							A        =      hidden_act
							A        =      hidden_dropout_prob
							A        =      hidden_sizes
							A        =      num_hidden_layers
							A        =      num_attention_heads
							A        =      initializer_range
							A        =      layer_norm_eps
							A        =      patch_size
							A        =      num_channels
							A        =      depths
							A        =      mlp_expansion_ratio
							A        =      downsamples
							A        =      dim
							A        =      key_dim
							A        =      attention_ratio
							A        =      resolution
							A        =      pool_size
							A        =      downsample_patch_size
							A        =      downsample_stride
							A        =      downsample_pad
							A        =      drop_path_rate
							A        =      num_metaad_blocks
							A        =      distillation
							A        =      use_layer_scale
							A        =      layer_scale_init_value
							A        =      image_size
							A        =      batch_norm_eps







from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available


__UpperCAmelCase								=						{'configuration_vit_msn': ['VIT_MSN_PRETRAINED_CONFIG_ARCHIVE_MAP', 'ViTMSNConfig']}

try:
		if not is_torch_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		__UpperCAmelCase								=						[
		    'VIT_MSN_PRETRAINED_MODEL_ARCHIVE_LIST',
		    'ViTMSNModel',
		    'ViTMSNForImageClassification',
		    'ViTMSNPreTrainedModel',
		]

if TYPE_CHECKING:
		from .configuration_vit_msn import VIT_MSN_PRETRAINED_CONFIG_ARCHIVE_MAP, ViTMSNConfig

		try:
				if not is_torch_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .modeling_vit_msn import (
				    VIT_MSN_PRETRAINED_MODEL_ARCHIVE_LIST,
				    ViTMSNForImageClassification,
				    ViTMSNModel,
				    ViTMSNPreTrainedModel,
				)

else:
		import sys

		__UpperCAmelCase								=						_LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)






