from typing import TYPE_CHECKING

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


lowerCAmelCase__  	=      {
    "configuration_big_bird": ["BIG_BIRD_PRETRAINED_CONFIG_ARCHIVE_MAP", "BigBirdConfig", "BigBirdOnnxConfig"],
}

try:
						if not is_sentencepiece_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						lowerCAmelCase__  	=      ["BigBirdTokenizer"]

try:
						if not is_tokenizers_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						lowerCAmelCase__  	=      ["BigBirdTokenizerFast"]

try:
						if not is_torch_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						lowerCAmelCase__  	=      [
						    "BIG_BIRD_PRETRAINED_MODEL_ARCHIVE_LIST",
						    "BigBirdForCausalLM",
						    "BigBirdForMaskedLM",
						    "BigBirdForMultipleChoice",
						    "BigBirdForPreTraining",
						    "BigBirdForQuestionAnswering",
						    "BigBirdForSequenceClassification",
						    "BigBirdForTokenClassification",
						    "BigBirdLayer",
						    "BigBirdModel",
						    "BigBirdPreTrainedModel",
						    "load_tf_weights_in_big_bird",
						]

try:
						if not is_flax_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						lowerCAmelCase__  	=      [
						    "FlaxBigBirdForCausalLM",
						    "FlaxBigBirdForMaskedLM",
						    "FlaxBigBirdForMultipleChoice",
						    "FlaxBigBirdForPreTraining",
						    "FlaxBigBirdForQuestionAnswering",
						    "FlaxBigBirdForSequenceClassification",
						    "FlaxBigBirdForTokenClassification",
						    "FlaxBigBirdModel",
						    "FlaxBigBirdPreTrainedModel",
						]

if TYPE_CHECKING:
						from .configuration_big_bird import BIG_BIRD_PRETRAINED_CONFIG_ARCHIVE_MAP, BigBirdConfig, BigBirdOnnxConfig

						try:
												if not is_sentencepiece_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .tokenization_big_bird import BigBirdTokenizer

						try:
												if not is_tokenizers_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .tokenization_big_bird_fast import BigBirdTokenizerFast

						try:
												if not is_torch_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .modeling_big_bird import (
												    BIG_BIRD_PRETRAINED_MODEL_ARCHIVE_LIST,
												    BigBirdForCausalLM,
												    BigBirdForMaskedLM,
												    BigBirdForMultipleChoice,
												    BigBirdForPreTraining,
												    BigBirdForQuestionAnswering,
												    BigBirdForSequenceClassification,
												    BigBirdForTokenClassification,
												    BigBirdLayer,
												    BigBirdModel,
												    BigBirdPreTrainedModel,
												    load_tf_weights_in_big_bird,
												)

						try:
												if not is_flax_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .modeling_flax_big_bird import (
												    FlaxBigBirdForCausalLM,
												    FlaxBigBirdForMaskedLM,
												    FlaxBigBirdForMultipleChoice,
												    FlaxBigBirdForPreTraining,
												    FlaxBigBirdForQuestionAnswering,
												    FlaxBigBirdForSequenceClassification,
												    FlaxBigBirdForTokenClassification,
												    FlaxBigBirdModel,
												    FlaxBigBirdPreTrainedModel,
												)

else:
						import sys

						lowerCAmelCase__  	=      _LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)







"""simple docstring"""



from collections import OrderedDict
from typing import Mapping

from packaging import version

from ...configuration_utils import PretrainedConfig
from ...onnx import OnnxConfig
from ...utils import logging


SCREAMING_SNAKE_CASE_       :						Union[str, Any]					=    logging.get_logger(__name__)

SCREAMING_SNAKE_CASE_       :						Union[str, Any]					=    {
    'MBZUAI/swiftformer-xs': 'https://huggingface.co/MBZUAI/swiftformer-xs/resolve/main/config.json',
}



class        a    (							_lowerCamelCase					):



    """simple docstring"""



    UpperCAmelCase    			=       "swiftformer"

    def __init__(  self:			Tuple     ,    UpperCamelCase:			int=3     ,    UpperCamelCase:			Union[str, Any]=[3, 3, 6, 4]     ,    UpperCamelCase:			List[str]=[48, 56, 1_12, 2_20]     ,    UpperCamelCase:			List[Any]=4     ,    UpperCamelCase:			List[Any]=[True, True, True, True]     ,    UpperCamelCase:			str="gelu"     ,    UpperCamelCase:			Tuple=3     ,    UpperCamelCase:			Dict=2     ,    UpperCamelCase:			int=1     ,    UpperCamelCase:			List[Any]=0.0     ,    UpperCamelCase:			Any=True     ,    UpperCamelCase:			List[Any]=1e-5     ,    UpperCamelCase:			List[Any]=1e-5     ,    **UpperCamelCase:			Any     ,    ):






         """simple docstring"""


         super().__init__(**UpperCamelCase							)
         A__				      =	num_channels
         A__				      =	depths
         A__				      =	embed_dims
         A__				      =	mlp_ratio
         A__				      =	downsamples
         A__				      =	hidden_act
         A__				      =	down_patch_size
         A__				      =	down_stride
         A__				      =	down_pad
         A__				      =	drop_path_rate
         A__				      =	use_layer_scale
         A__				      =	layer_scale_init_value
         A__				      =	batch_norm_eps



class        a    (							_lowerCamelCase					):



    """simple docstring"""



    UpperCAmelCase    			=       version.parse("1.11"					)

    @property
    def 					UpperCamelCase						(  self:			int							):






         """simple docstring"""


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





    @property
    def 					UpperCamelCase						(  self:			Any							):






         """simple docstring"""


         return 1e-4






