from typing import TYPE_CHECKING

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


_lowerCamelCase    :      List[Any]	 =						{
    '''auto_factory''': ['''get_values'''],
    '''configuration_auto''': ['''ALL_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''CONFIG_MAPPING''', '''MODEL_NAMES_MAPPING''', '''AutoConfig'''],
    '''feature_extraction_auto''': ['''FEATURE_EXTRACTOR_MAPPING''', '''AutoFeatureExtractor'''],
    '''image_processing_auto''': ['''IMAGE_PROCESSOR_MAPPING''', '''AutoImageProcessor'''],
    '''processing_auto''': ['''PROCESSOR_MAPPING''', '''AutoProcessor'''],
    '''tokenization_auto''': ['''TOKENIZER_MAPPING''', '''AutoTokenizer'''],
}

try:
							if not is_torch_available():
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							pass
else:
							_lowerCamelCase    :      Any	 =						[
							    '''MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING''',
							    '''MODEL_FOR_AUDIO_FRAME_CLASSIFICATION_MAPPING''',
							    '''MODEL_FOR_AUDIO_XVECTOR_MAPPING''',
							    '''MODEL_FOR_BACKBONE_MAPPING''',
							    '''MODEL_FOR_CAUSAL_IMAGE_MODELING_MAPPING''',
							    '''MODEL_FOR_CAUSAL_LM_MAPPING''',
							    '''MODEL_FOR_CTC_MAPPING''',
							    '''MODEL_FOR_DOCUMENT_QUESTION_ANSWERING_MAPPING''',
							    '''MODEL_FOR_DEPTH_ESTIMATION_MAPPING''',
							    '''MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING''',
							    '''MODEL_FOR_IMAGE_SEGMENTATION_MAPPING''',
							    '''MODEL_FOR_INSTANCE_SEGMENTATION_MAPPING''',
							    '''MODEL_FOR_MASKED_IMAGE_MODELING_MAPPING''',
							    '''MODEL_FOR_MASKED_LM_MAPPING''',
							    '''MODEL_FOR_MASK_GENERATION_MAPPING''',
							    '''MODEL_FOR_MULTIPLE_CHOICE_MAPPING''',
							    '''MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPING''',
							    '''MODEL_FOR_OBJECT_DETECTION_MAPPING''',
							    '''MODEL_FOR_PRETRAINING_MAPPING''',
							    '''MODEL_FOR_QUESTION_ANSWERING_MAPPING''',
							    '''MODEL_FOR_SEMANTIC_SEGMENTATION_MAPPING''',
							    '''MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING''',
							    '''MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING''',
							    '''MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING''',
							    '''MODEL_FOR_TABLE_QUESTION_ANSWERING_MAPPING''',
							    '''MODEL_FOR_TEXT_ENCODING_MAPPING''',
							    '''MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING''',
							    '''MODEL_FOR_UNIVERSAL_SEGMENTATION_MAPPING''',
							    '''MODEL_FOR_VIDEO_CLASSIFICATION_MAPPING''',
							    '''MODEL_FOR_VISION_2_SEQ_MAPPING''',
							    '''MODEL_FOR_VISUAL_QUESTION_ANSWERING_MAPPING''',
							    '''MODEL_MAPPING''',
							    '''MODEL_WITH_LM_HEAD_MAPPING''',
							    '''MODEL_FOR_ZERO_SHOT_IMAGE_CLASSIFICATION_MAPPING''',
							    '''MODEL_FOR_ZERO_SHOT_OBJECT_DETECTION_MAPPING''',
							    '''AutoModel''',
							    '''AutoBackbone''',
							    '''AutoModelForAudioClassification''',
							    '''AutoModelForAudioFrameClassification''',
							    '''AutoModelForAudioXVector''',
							    '''AutoModelForCausalLM''',
							    '''AutoModelForCTC''',
							    '''AutoModelForDepthEstimation''',
							    '''AutoModelForImageClassification''',
							    '''AutoModelForImageSegmentation''',
							    '''AutoModelForInstanceSegmentation''',
							    '''AutoModelForMaskGeneration''',
							    '''AutoModelForTextEncoding''',
							    '''AutoModelForMaskedImageModeling''',
							    '''AutoModelForMaskedLM''',
							    '''AutoModelForMultipleChoice''',
							    '''AutoModelForNextSentencePrediction''',
							    '''AutoModelForObjectDetection''',
							    '''AutoModelForPreTraining''',
							    '''AutoModelForQuestionAnswering''',
							    '''AutoModelForSemanticSegmentation''',
							    '''AutoModelForSeq2SeqLM''',
							    '''AutoModelForSequenceClassification''',
							    '''AutoModelForSpeechSeq2Seq''',
							    '''AutoModelForTableQuestionAnswering''',
							    '''AutoModelForTokenClassification''',
							    '''AutoModelForUniversalSegmentation''',
							    '''AutoModelForVideoClassification''',
							    '''AutoModelForVision2Seq''',
							    '''AutoModelForVisualQuestionAnswering''',
							    '''AutoModelForDocumentQuestionAnswering''',
							    '''AutoModelWithLMHead''',
							    '''AutoModelForZeroShotImageClassification''',
							    '''AutoModelForZeroShotObjectDetection''',
							]

try:
							if not is_tf_available():
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							pass
else:
							_lowerCamelCase    :      List[Any]	 =						[
							    '''TF_MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING''',
							    '''TF_MODEL_FOR_CAUSAL_LM_MAPPING''',
							    '''TF_MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING''',
							    '''TF_MODEL_FOR_MASK_GENERATION_MAPPING''',
							    '''TF_MODEL_FOR_MASKED_IMAGE_MODELING_MAPPING''',
							    '''TF_MODEL_FOR_MASKED_LM_MAPPING''',
							    '''TF_MODEL_FOR_MULTIPLE_CHOICE_MAPPING''',
							    '''TF_MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPING''',
							    '''TF_MODEL_FOR_PRETRAINING_MAPPING''',
							    '''TF_MODEL_FOR_QUESTION_ANSWERING_MAPPING''',
							    '''TF_MODEL_FOR_DOCUMENT_QUESTION_ANSWERING_MAPPING''',
							    '''TF_MODEL_FOR_SEMANTIC_SEGMENTATION_MAPPING''',
							    '''TF_MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING''',
							    '''TF_MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING''',
							    '''TF_MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING''',
							    '''TF_MODEL_FOR_TABLE_QUESTION_ANSWERING_MAPPING''',
							    '''TF_MODEL_FOR_TEXT_ENCODING_MAPPING''',
							    '''TF_MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING''',
							    '''TF_MODEL_FOR_VISION_2_SEQ_MAPPING''',
							    '''TF_MODEL_FOR_ZERO_SHOT_IMAGE_CLASSIFICATION_MAPPING''',
							    '''TF_MODEL_MAPPING''',
							    '''TF_MODEL_WITH_LM_HEAD_MAPPING''',
							    '''TFAutoModel''',
							    '''TFAutoModelForAudioClassification''',
							    '''TFAutoModelForCausalLM''',
							    '''TFAutoModelForImageClassification''',
							    '''TFAutoModelForMaskedImageModeling''',
							    '''TFAutoModelForMaskedLM''',
							    '''TFAutoModelForMaskGeneration''',
							    '''TFAutoModelForMultipleChoice''',
							    '''TFAutoModelForNextSentencePrediction''',
							    '''TFAutoModelForPreTraining''',
							    '''TFAutoModelForDocumentQuestionAnswering''',
							    '''TFAutoModelForQuestionAnswering''',
							    '''TFAutoModelForSemanticSegmentation''',
							    '''TFAutoModelForSeq2SeqLM''',
							    '''TFAutoModelForSequenceClassification''',
							    '''TFAutoModelForSpeechSeq2Seq''',
							    '''TFAutoModelForTableQuestionAnswering''',
							    '''TFAutoModelForTextEncoding''',
							    '''TFAutoModelForTokenClassification''',
							    '''TFAutoModelForVision2Seq''',
							    '''TFAutoModelForZeroShotImageClassification''',
							    '''TFAutoModelWithLMHead''',
							]

try:
							if not is_flax_available():
														raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
							pass
else:
							_lowerCamelCase    :      Optional[int]	 =						[
							    '''FLAX_MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING''',
							    '''FLAX_MODEL_FOR_CAUSAL_LM_MAPPING''',
							    '''FLAX_MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING''',
							    '''FLAX_MODEL_FOR_MASKED_LM_MAPPING''',
							    '''FLAX_MODEL_FOR_MULTIPLE_CHOICE_MAPPING''',
							    '''FLAX_MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPING''',
							    '''FLAX_MODEL_FOR_PRETRAINING_MAPPING''',
							    '''FLAX_MODEL_FOR_QUESTION_ANSWERING_MAPPING''',
							    '''FLAX_MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING''',
							    '''FLAX_MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING''',
							    '''FLAX_MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING''',
							    '''FLAX_MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING''',
							    '''FLAX_MODEL_FOR_VISION_2_SEQ_MAPPING''',
							    '''FLAX_MODEL_MAPPING''',
							    '''FlaxAutoModel''',
							    '''FlaxAutoModelForCausalLM''',
							    '''FlaxAutoModelForImageClassification''',
							    '''FlaxAutoModelForMaskedLM''',
							    '''FlaxAutoModelForMultipleChoice''',
							    '''FlaxAutoModelForNextSentencePrediction''',
							    '''FlaxAutoModelForPreTraining''',
							    '''FlaxAutoModelForQuestionAnswering''',
							    '''FlaxAutoModelForSeq2SeqLM''',
							    '''FlaxAutoModelForSequenceClassification''',
							    '''FlaxAutoModelForSpeechSeq2Seq''',
							    '''FlaxAutoModelForTokenClassification''',
							    '''FlaxAutoModelForVision2Seq''',
							]


if TYPE_CHECKING:
							from .auto_factory import get_values
							from .configuration_auto import ALL_PRETRAINED_CONFIG_ARCHIVE_MAP, CONFIG_MAPPING, MODEL_NAMES_MAPPING, AutoConfig
							from .feature_extraction_auto import FEATURE_EXTRACTOR_MAPPING, AutoFeatureExtractor
							from .image_processing_auto import IMAGE_PROCESSOR_MAPPING, AutoImageProcessor
							from .processing_auto import PROCESSOR_MAPPING, AutoProcessor
							from .tokenization_auto import TOKENIZER_MAPPING, AutoTokenizer

							try:
														if not is_torch_available():
																					raise OptionalDependencyNotAvailable()
							except OptionalDependencyNotAvailable:
														pass
							else:
														from .modeling_auto import (
														    MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING,
														    MODEL_FOR_AUDIO_FRAME_CLASSIFICATION_MAPPING,
														    MODEL_FOR_AUDIO_XVECTOR_MAPPING,
														    MODEL_FOR_BACKBONE_MAPPING,
														    MODEL_FOR_CAUSAL_IMAGE_MODELING_MAPPING,
														    MODEL_FOR_CAUSAL_LM_MAPPING,
														    MODEL_FOR_CTC_MAPPING,
														    MODEL_FOR_DEPTH_ESTIMATION_MAPPING,
														    MODEL_FOR_DOCUMENT_QUESTION_ANSWERING_MAPPING,
														    MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING,
														    MODEL_FOR_IMAGE_SEGMENTATION_MAPPING,
														    MODEL_FOR_INSTANCE_SEGMENTATION_MAPPING,
														    MODEL_FOR_MASK_GENERATION_MAPPING,
														    MODEL_FOR_MASKED_IMAGE_MODELING_MAPPING,
														    MODEL_FOR_MASKED_LM_MAPPING,
														    MODEL_FOR_MULTIPLE_CHOICE_MAPPING,
														    MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPING,
														    MODEL_FOR_OBJECT_DETECTION_MAPPING,
														    MODEL_FOR_PRETRAINING_MAPPING,
														    MODEL_FOR_QUESTION_ANSWERING_MAPPING,
														    MODEL_FOR_SEMANTIC_SEGMENTATION_MAPPING,
														    MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING,
														    MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING,
														    MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING,
														    MODEL_FOR_TABLE_QUESTION_ANSWERING_MAPPING,
														    MODEL_FOR_TEXT_ENCODING_MAPPING,
														    MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING,
														    MODEL_FOR_UNIVERSAL_SEGMENTATION_MAPPING,
														    MODEL_FOR_VIDEO_CLASSIFICATION_MAPPING,
														    MODEL_FOR_VISION_2_SEQ_MAPPING,
														    MODEL_FOR_VISUAL_QUESTION_ANSWERING_MAPPING,
														    MODEL_FOR_ZERO_SHOT_IMAGE_CLASSIFICATION_MAPPING,
														    MODEL_FOR_ZERO_SHOT_OBJECT_DETECTION_MAPPING,
														    MODEL_MAPPING,
														    MODEL_WITH_LM_HEAD_MAPPING,
														    AutoBackbone,
														    AutoModel,
														    AutoModelForAudioClassification,
														    AutoModelForAudioFrameClassification,
														    AutoModelForAudioXVector,
														    AutoModelForCausalLM,
														    AutoModelForCTC,
														    AutoModelForDepthEstimation,
														    AutoModelForDocumentQuestionAnswering,
														    AutoModelForImageClassification,
														    AutoModelForImageSegmentation,
														    AutoModelForInstanceSegmentation,
														    AutoModelForMaskedImageModeling,
														    AutoModelForMaskedLM,
														    AutoModelForMaskGeneration,
														    AutoModelForMultipleChoice,
														    AutoModelForNextSentencePrediction,
														    AutoModelForObjectDetection,
														    AutoModelForPreTraining,
														    AutoModelForQuestionAnswering,
														    AutoModelForSemanticSegmentation,
														    AutoModelForSeqaSeqLM,
														    AutoModelForSequenceClassification,
														    AutoModelForSpeechSeqaSeq,
														    AutoModelForTableQuestionAnswering,
														    AutoModelForTextEncoding,
														    AutoModelForTokenClassification,
														    AutoModelForUniversalSegmentation,
														    AutoModelForVideoClassification,
														    AutoModelForVisionaSeq,
														    AutoModelForVisualQuestionAnswering,
														    AutoModelForZeroShotImageClassification,
														    AutoModelForZeroShotObjectDetection,
														    AutoModelWithLMHead,
														)

							try:
														if not is_tf_available():
																					raise OptionalDependencyNotAvailable()
							except OptionalDependencyNotAvailable:
														pass
							else:
														from .modeling_tf_auto import (
														    TF_MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING,
														    TF_MODEL_FOR_CAUSAL_LM_MAPPING,
														    TF_MODEL_FOR_DOCUMENT_QUESTION_ANSWERING_MAPPING,
														    TF_MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING,
														    TF_MODEL_FOR_MASK_GENERATION_MAPPING,
														    TF_MODEL_FOR_MASKED_IMAGE_MODELING_MAPPING,
														    TF_MODEL_FOR_MASKED_LM_MAPPING,
														    TF_MODEL_FOR_MULTIPLE_CHOICE_MAPPING,
														    TF_MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPING,
														    TF_MODEL_FOR_PRETRAINING_MAPPING,
														    TF_MODEL_FOR_QUESTION_ANSWERING_MAPPING,
														    TF_MODEL_FOR_SEMANTIC_SEGMENTATION_MAPPING,
														    TF_MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING,
														    TF_MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING,
														    TF_MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING,
														    TF_MODEL_FOR_TABLE_QUESTION_ANSWERING_MAPPING,
														    TF_MODEL_FOR_TEXT_ENCODING_MAPPING,
														    TF_MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING,
														    TF_MODEL_FOR_VISION_2_SEQ_MAPPING,
														    TF_MODEL_FOR_ZERO_SHOT_IMAGE_CLASSIFICATION_MAPPING,
														    TF_MODEL_MAPPING,
														    TF_MODEL_WITH_LM_HEAD_MAPPING,
														    TFAutoModel,
														    TFAutoModelForAudioClassification,
														    TFAutoModelForCausalLM,
														    TFAutoModelForDocumentQuestionAnswering,
														    TFAutoModelForImageClassification,
														    TFAutoModelForMaskedImageModeling,
														    TFAutoModelForMaskedLM,
														    TFAutoModelForMaskGeneration,
														    TFAutoModelForMultipleChoice,
														    TFAutoModelForNextSentencePrediction,
														    TFAutoModelForPreTraining,
														    TFAutoModelForQuestionAnswering,
														    TFAutoModelForSemanticSegmentation,
														    TFAutoModelForSeqaSeqLM,
														    TFAutoModelForSequenceClassification,
														    TFAutoModelForSpeechSeqaSeq,
														    TFAutoModelForTableQuestionAnswering,
														    TFAutoModelForTextEncoding,
														    TFAutoModelForTokenClassification,
														    TFAutoModelForVisionaSeq,
														    TFAutoModelForZeroShotImageClassification,
														    TFAutoModelWithLMHead,
														)

							try:
														if not is_flax_available():
																					raise OptionalDependencyNotAvailable()
							except OptionalDependencyNotAvailable:
														pass
							else:
														from .modeling_flax_auto import (
														    FLAX_MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING,
														    FLAX_MODEL_FOR_CAUSAL_LM_MAPPING,
														    FLAX_MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING,
														    FLAX_MODEL_FOR_MASKED_LM_MAPPING,
														    FLAX_MODEL_FOR_MULTIPLE_CHOICE_MAPPING,
														    FLAX_MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPING,
														    FLAX_MODEL_FOR_PRETRAINING_MAPPING,
														    FLAX_MODEL_FOR_QUESTION_ANSWERING_MAPPING,
														    FLAX_MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING,
														    FLAX_MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING,
														    FLAX_MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING,
														    FLAX_MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING,
														    FLAX_MODEL_FOR_VISION_2_SEQ_MAPPING,
														    FLAX_MODEL_MAPPING,
														    FlaxAutoModel,
														    FlaxAutoModelForCausalLM,
														    FlaxAutoModelForImageClassification,
														    FlaxAutoModelForMaskedLM,
														    FlaxAutoModelForMultipleChoice,
														    FlaxAutoModelForNextSentencePrediction,
														    FlaxAutoModelForPreTraining,
														    FlaxAutoModelForQuestionAnswering,
														    FlaxAutoModelForSeqaSeqLM,
														    FlaxAutoModelForSequenceClassification,
														    FlaxAutoModelForSpeechSeqaSeq,
														    FlaxAutoModelForTokenClassification,
														    FlaxAutoModelForVisionaSeq,
														)

else:
							import sys

							_lowerCamelCase    :      int	 =						_LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)







from collections import OrderedDict
from typing import Mapping

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


_UpperCamelCase			       =			logging.get_logger(__name__)

_UpperCamelCase			       =			{
    '''google/rembert''': '''https://huggingface.co/google/rembert/resolve/main/config.json''',
    # See all RemBERT models at https://huggingface.co/models?filter=rembert
}



class     lowercase						(       _UpperCamelCase					):



 '''simple docstring'''


 __SCREAMING_SNAKE_CASE												=				"""rembert"""




 def __init__(self       ,       __a=250300       ,       __a=1152       ,       __a=32       ,       __a=18       ,       __a=256       ,       __a=1664       ,       __a=4608       ,       __a="gelu"       ,       __a=0.0       ,       __a=0.0       ,       __a=0.1       ,       __a=512       ,       __a=2       ,       __a=0.02       ,       __a=1E-1_2       ,       __a=True       ,       __a=0       ,       __a=312       ,       __a=313       ,       **__a       ,       ) ->					str:






  """simple docstring"""





  super().__init__(pad_token_id=__a       ,       bos_token_id=__a       ,       eos_token_id=__a       ,       **__a )

  UpperCAmelCase__							=				vocab_size
  UpperCAmelCase__							=				input_embedding_size
  UpperCAmelCase__							=				output_embedding_size
  UpperCAmelCase__							=				max_position_embeddings
  UpperCAmelCase__							=				hidden_size
  UpperCAmelCase__							=				num_hidden_layers
  UpperCAmelCase__							=				num_attention_heads
  UpperCAmelCase__							=				intermediate_size
  UpperCAmelCase__							=				hidden_act
  UpperCAmelCase__							=				hidden_dropout_prob
  UpperCAmelCase__							=				attention_probs_dropout_prob
  UpperCAmelCase__							=				classifier_dropout_prob
  UpperCAmelCase__							=				initializer_range
  UpperCAmelCase__							=				type_vocab_size
  UpperCAmelCase__							=				layer_norm_eps
  UpperCAmelCase__							=				use_cache
  UpperCAmelCase__							=				False







class     lowercase						(       _UpperCamelCase					):



 '''simple docstring'''


 @property
 def   UpperCamelCase__							(self ) ->					Mapping[str, Mapping[int, str]]:






  """simple docstring"""





  if self.task == "multiple-choice":
   UpperCAmelCase__							=				{0: 'batch', 1: 'choice', 2: 'sequence'}
  else:
   UpperCAmelCase__							=				{0: 'batch', 1: 'sequence'}
  return OrderedDict(
      [
          ('input_ids', dynamic_axis),
          ('attention_mask', dynamic_axis),
          ('token_type_ids', dynamic_axis),
      ] )




 @property
 def   UpperCamelCase__							(self ) ->					float:






  """simple docstring"""





  return 1E-4



