from collections import OrderedDict
from typing import Mapping

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


lowerCamelCase_    :		Optional[int]							=	logging.get_logger(__name__)

lowerCamelCase_    :		Dict							=	{
    """bert-base-uncased""": """https://huggingface.co/bert-base-uncased/resolve/main/config.json""",
    """bert-large-uncased""": """https://huggingface.co/bert-large-uncased/resolve/main/config.json""",
    """bert-base-cased""": """https://huggingface.co/bert-base-cased/resolve/main/config.json""",
    """bert-large-cased""": """https://huggingface.co/bert-large-cased/resolve/main/config.json""",
    """bert-base-multilingual-uncased""": """https://huggingface.co/bert-base-multilingual-uncased/resolve/main/config.json""",
    """bert-base-multilingual-cased""": """https://huggingface.co/bert-base-multilingual-cased/resolve/main/config.json""",
    """bert-base-chinese""": """https://huggingface.co/bert-base-chinese/resolve/main/config.json""",
    """bert-base-german-cased""": """https://huggingface.co/bert-base-german-cased/resolve/main/config.json""",
    """bert-large-uncased-whole-word-masking""": (
        """https://huggingface.co/bert-large-uncased-whole-word-masking/resolve/main/config.json"""
    ),
    """bert-large-cased-whole-word-masking""": (
        """https://huggingface.co/bert-large-cased-whole-word-masking/resolve/main/config.json"""
    ),
    """bert-large-uncased-whole-word-masking-finetuned-squad""": (
        """https://huggingface.co/bert-large-uncased-whole-word-masking-finetuned-squad/resolve/main/config.json"""
    ),
    """bert-large-cased-whole-word-masking-finetuned-squad""": (
        """https://huggingface.co/bert-large-cased-whole-word-masking-finetuned-squad/resolve/main/config.json"""
    ),
    """bert-base-cased-finetuned-mrpc""": """https://huggingface.co/bert-base-cased-finetuned-mrpc/resolve/main/config.json""",
    """bert-base-german-dbmdz-cased""": """https://huggingface.co/bert-base-german-dbmdz-cased/resolve/main/config.json""",
    """bert-base-german-dbmdz-uncased""": """https://huggingface.co/bert-base-german-dbmdz-uncased/resolve/main/config.json""",
    """cl-tohoku/bert-base-japanese""": """https://huggingface.co/cl-tohoku/bert-base-japanese/resolve/main/config.json""",
    """cl-tohoku/bert-base-japanese-whole-word-masking""": (
        """https://huggingface.co/cl-tohoku/bert-base-japanese-whole-word-masking/resolve/main/config.json"""
    ),
    """cl-tohoku/bert-base-japanese-char""": (
        """https://huggingface.co/cl-tohoku/bert-base-japanese-char/resolve/main/config.json"""
    ),
    """cl-tohoku/bert-base-japanese-char-whole-word-masking""": (
        """https://huggingface.co/cl-tohoku/bert-base-japanese-char-whole-word-masking/resolve/main/config.json"""
    ),
    """TurkuNLP/bert-base-finnish-cased-v1""": (
        """https://huggingface.co/TurkuNLP/bert-base-finnish-cased-v1/resolve/main/config.json"""
    ),
    """TurkuNLP/bert-base-finnish-uncased-v1""": (
        """https://huggingface.co/TurkuNLP/bert-base-finnish-uncased-v1/resolve/main/config.json"""
    ),
    """wietsedv/bert-base-dutch-cased""": """https://huggingface.co/wietsedv/bert-base-dutch-cased/resolve/main/config.json""",
    # See all BERT models at https://huggingface.co/models?filter=bert
}


class 						a__							(       __snake_case		):
			A__    :       List[Any]        =      'bert'



			def __init__(						self				,						UpperCAmelCase=3_0_5_2_2				,						UpperCAmelCase=7_6_8				,						UpperCAmelCase=1_2				,						UpperCAmelCase=1_2				,						UpperCAmelCase=3_0_7_2				,						UpperCAmelCase="gelu"				,						UpperCAmelCase=0.1				,						UpperCAmelCase=0.1				,						UpperCAmelCase=5_1_2				,						UpperCAmelCase=2				,						UpperCAmelCase=0.02				,						UpperCAmelCase=1e-12				,						UpperCAmelCase=0				,						UpperCAmelCase="absolute"				,						UpperCAmelCase=True				,						UpperCAmelCase=None				,						**UpperCAmelCase				,						)			->   int:
								super().__init__(pad_token_id=UpperCAmelCase				,						**UpperCAmelCase   )

								__a		 =       vocab_size
								__a		 =       hidden_size
								__a		 =       num_hidden_layers
								__a		 =       num_attention_heads
								__a		 =       hidden_act
								__a		 =       intermediate_size
								__a		 =       hidden_dropout_prob
								__a		 =       attention_probs_dropout_prob
								__a		 =       max_position_embeddings
								__a		 =       type_vocab_size
								__a		 =       initializer_range
								__a		 =       layer_norm_eps
								__a		 =       position_embedding_type
								__a		 =       use_cache
								__a		 =       classifier_dropout






class 						a__							(       __snake_case		):



			@property
			def __SCREAMING_SNAKE_CASE							(						self   )			->   Mapping[str, Mapping[int, str]]:
								if self.task == "multiple-choice":
													__a		 =       {0: 'batch', 1: 'choice', 2: 'sequence'}
								else:
													__a		 =       {0: 'batch', 1: 'sequence'}
								return OrderedDict(
								    [
								        ('input_ids', dynamic_axis),
								        ('attention_mask', dynamic_axis),
								        ('token_type_ids', dynamic_axis),
								    ]   )





from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_tf_available, is_torch_available


lowerCamelCase_    :		Dict							=	{"""configuration_swin""": ["""SWIN_PRETRAINED_CONFIG_ARCHIVE_MAP""", """SwinConfig""", """SwinOnnxConfig"""]}


try:
	if not is_torch_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	lowerCamelCase_    :		int							=	[
	    """SWIN_PRETRAINED_MODEL_ARCHIVE_LIST""",
	    """SwinForImageClassification""",
	    """SwinForMaskedImageModeling""",
	    """SwinModel""",
	    """SwinPreTrainedModel""",
	    """SwinBackbone""",
	]

try:
	if not is_tf_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	lowerCamelCase_    :		Any							=	[
	    """TF_SWIN_PRETRAINED_MODEL_ARCHIVE_LIST""",
	    """TFSwinForImageClassification""",
	    """TFSwinForMaskedImageModeling""",
	    """TFSwinModel""",
	    """TFSwinPreTrainedModel""",
	]

if TYPE_CHECKING:
	from .configuration_swin import SWIN_PRETRAINED_CONFIG_ARCHIVE_MAP, SwinConfig, SwinOnnxConfig

	try:
		if not is_torch_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_swin import (
		    SWIN_PRETRAINED_MODEL_ARCHIVE_LIST,
		    SwinBackbone,
		    SwinForImageClassification,
		    SwinForMaskedImageModeling,
		    SwinModel,
		    SwinPreTrainedModel,
		)

	try:
		if not is_tf_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_tf_swin import (
		    TF_SWIN_PRETRAINED_MODEL_ARCHIVE_LIST,
		    TFSwinForImageClassification,
		    TFSwinForMaskedImageModeling,
		    TFSwinModel,
		    TFSwinPreTrainedModel,
		)

else:
	import sys

	lowerCamelCase_    :		List[Any]							=	_LazyModule(__name__, globals()["""__file__"""], _import_structure, module_spec=__spec__)




