

"""simple docstring"""




from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_tf_available,
    is_tokenizers_available,
    is_torch_available,
)


__UpperCAmelCase			=					{
    'configuration_convbert': ['CONVBERT_PRETRAINED_CONFIG_ARCHIVE_MAP', 'ConvBertConfig', 'ConvBertOnnxConfig'],
    'tokenization_convbert': ['ConvBertTokenizer'],
}

try:
      if not is_tokenizers_available():
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      pass
else:
      __UpperCAmelCase			=					['ConvBertTokenizerFast']

try:
      if not is_torch_available():
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      pass
else:
      __UpperCAmelCase			=					[
          'CONVBERT_PRETRAINED_MODEL_ARCHIVE_LIST',
          'ConvBertForMaskedLM',
          'ConvBertForMultipleChoice',
          'ConvBertForQuestionAnswering',
          'ConvBertForSequenceClassification',
          'ConvBertForTokenClassification',
          'ConvBertLayer',
          'ConvBertModel',
          'ConvBertPreTrainedModel',
          'load_tf_weights_in_convbert',
      ]


try:
      if not is_tf_available():
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      pass
else:
      __UpperCAmelCase			=					[
          'TF_CONVBERT_PRETRAINED_MODEL_ARCHIVE_LIST',
          'TFConvBertForMaskedLM',
          'TFConvBertForMultipleChoice',
          'TFConvBertForQuestionAnswering',
          'TFConvBertForSequenceClassification',
          'TFConvBertForTokenClassification',
          'TFConvBertLayer',
          'TFConvBertModel',
          'TFConvBertPreTrainedModel',
      ]


if TYPE_CHECKING:
      from .configuration_convbert import CONVBERT_PRETRAINED_CONFIG_ARCHIVE_MAP, ConvBertConfig, ConvBertOnnxConfig
      from .tokenization_convbert import ConvBertTokenizer

      try:
            if not is_tokenizers_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .tokenization_convbert_fast import ConvBertTokenizerFast

      try:
            if not is_torch_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .modeling_convbert import (
                CONVBERT_PRETRAINED_MODEL_ARCHIVE_LIST,
                ConvBertForMaskedLM,
                ConvBertForMultipleChoice,
                ConvBertForQuestionAnswering,
                ConvBertForSequenceClassification,
                ConvBertForTokenClassification,
                ConvBertLayer,
                ConvBertModel,
                ConvBertPreTrainedModel,
                load_tf_weights_in_convbert,
            )

      try:
            if not is_tf_available():
                  raise OptionalDependencyNotAvailable()
      except OptionalDependencyNotAvailable:
            pass
      else:
            from .modeling_tf_convbert import (
                TF_CONVBERT_PRETRAINED_MODEL_ARCHIVE_LIST,
                TFConvBertForMaskedLM,
                TFConvBertForMultipleChoice,
                TFConvBertForQuestionAnswering,
                TFConvBertForSequenceClassification,
                TFConvBertForTokenClassification,
                TFConvBertLayer,
                TFConvBertModel,
                TFConvBertPreTrainedModel,
            )


else:
      import sys

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









from typing import List

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


_lowercase							:   Any						=						logging.get_logger(__name__)

_lowercase							:   Union[str, Any]						=						{
    "snap-research/efficientformer-l1-300": (
        "https://huggingface.co/snap-research/efficientformer-l1-300/resolve/main/config.json"
    ),
}






class    _UpperCamelCase     (       __snake_case					):

				"""simple docstring"""







				lowerCAmelCase					=			'efficientformer'

				def __init__(    self					, a__ = [3, 2, 6, 4]					, a__ = [48, 96, 224, 448]					, a__ = [True, True, True, True]					, a__ = 448					, a__ = 32					, a__ = 4					, a__ = 7					, a__ = 5					, a__ = 8					, a__ = 4					, a__ = 0.0					, a__ = 16					, a__ = 3					, a__ = 3					, a__ = 3					, a__ = 2					, a__ = 1					, a__ = 0.0					, a__ = 1					, a__ = True					, a__ = True					, a__ = 1e-5					, a__ = "gelu"					, a__ = 0.02					, a__ = 1e-12					, a__ = 224					, a__ = 1e-05					, **a__					, )						->					None:
					super().__init__(**a__ )

					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



