
from collections import OrderedDict
from typing import Mapping

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


__a         =   logging.get_logger(__name__)

__a         =   {
    'xlm-mlm-en-2048': 'https://huggingface.co/xlm-mlm-en-2048/resolve/main/config.json',
    'xlm-mlm-ende-1024': 'https://huggingface.co/xlm-mlm-ende-1024/resolve/main/config.json',
    'xlm-mlm-enfr-1024': 'https://huggingface.co/xlm-mlm-enfr-1024/resolve/main/config.json',
    'xlm-mlm-enro-1024': 'https://huggingface.co/xlm-mlm-enro-1024/resolve/main/config.json',
    'xlm-mlm-tlm-xnli15-1024': 'https://huggingface.co/xlm-mlm-tlm-xnli15-1024/resolve/main/config.json',
    'xlm-mlm-xnli15-1024': 'https://huggingface.co/xlm-mlm-xnli15-1024/resolve/main/config.json',
    'xlm-clm-enfr-1024': 'https://huggingface.co/xlm-clm-enfr-1024/resolve/main/config.json',
    'xlm-clm-ende-1024': 'https://huggingface.co/xlm-clm-ende-1024/resolve/main/config.json',
    'xlm-mlm-17-1280': 'https://huggingface.co/xlm-mlm-17-1280/resolve/main/config.json',
    'xlm-mlm-100-1280': 'https://huggingface.co/xlm-mlm-100-1280/resolve/main/config.json',
}
class 					lowercase__(							UpperCAmelCase				):



	"""simple docstring"""




	a     :List[Any]       	=      'xlm'
	a     :Dict       	=      {
	    'hidden_size': 'emb_dim',
	    'num_attention_heads': 'n_heads',
	    'num_hidden_layers': 'n_layers',
	    'n_words': 'vocab_size',  # For backward compatibility
	}
	def __init__(			self    :     List[Any]			,				SCREAMING_SNAKE_CASE_    :     Dict=3_0_1_4_5			,				SCREAMING_SNAKE_CASE_    :     Dict=2_0_4_8			,				SCREAMING_SNAKE_CASE_    :     Optional[int]=1_2			,				SCREAMING_SNAKE_CASE_    :     Optional[int]=1_6			,				SCREAMING_SNAKE_CASE_    :     Dict=0.1			,				SCREAMING_SNAKE_CASE_    :     str=0.1			,				SCREAMING_SNAKE_CASE_    :     Any=True			,				SCREAMING_SNAKE_CASE_    :     Any=False			,				SCREAMING_SNAKE_CASE_    :     str=False			,				SCREAMING_SNAKE_CASE_    :     Optional[Any]=False			,				SCREAMING_SNAKE_CASE_    :     Optional[Any]=1			,				SCREAMING_SNAKE_CASE_    :     Dict=True			,				SCREAMING_SNAKE_CASE_    :     Dict=5_1_2			,				SCREAMING_SNAKE_CASE_    :     Optional[int]=2_0_4_8**-0.5			,				SCREAMING_SNAKE_CASE_    :     Dict=1e-12			,				SCREAMING_SNAKE_CASE_    :     Any=0.02			,				SCREAMING_SNAKE_CASE_    :     str=0			,				SCREAMING_SNAKE_CASE_    :     List[Any]=1			,				SCREAMING_SNAKE_CASE_    :     List[Any]=2			,				SCREAMING_SNAKE_CASE_    :     int=3			,				SCREAMING_SNAKE_CASE_    :     Dict=5			,				SCREAMING_SNAKE_CASE_    :     int=True			,				SCREAMING_SNAKE_CASE_    :     List[Any]="first"			,				SCREAMING_SNAKE_CASE_    :     Any=True			,				SCREAMING_SNAKE_CASE_    :     List[Any]=None			,				SCREAMING_SNAKE_CASE_    :     str=True			,				SCREAMING_SNAKE_CASE_    :     Union[str, Any]=0.1			,				SCREAMING_SNAKE_CASE_    :     Optional[Any]=5			,				SCREAMING_SNAKE_CASE_    :     List[str]=5			,				SCREAMING_SNAKE_CASE_    :     Any=0			,				SCREAMING_SNAKE_CASE_    :     str=0			,				SCREAMING_SNAKE_CASE_    :     Optional[Any]=2			,				SCREAMING_SNAKE_CASE_    :     Tuple=0			,				**SCREAMING_SNAKE_CASE_    :     Dict			,				)			->	List[Any]:
					lowercase_	    =   vocab_size
					lowercase_	    =   emb_dim
					lowercase_	    =   n_layers
					lowercase_	    =   n_heads
					lowercase_	    =   dropout
					lowercase_	    =   attention_dropout
					lowercase_	    =   gelu_activation
					lowercase_	    =   sinusoidal_embeddings
					lowercase_	    =   causal
					lowercase_	    =   asm
					lowercase_	    =   n_langs
					lowercase_	    =   use_lang_emb
					lowercase_	    =   layer_norm_eps
					lowercase_	    =   bos_index
					lowercase_	    =   eos_index
					lowercase_	    =   pad_index
					lowercase_	    =   unk_index
					lowercase_	    =   mask_index
					lowercase_	    =   is_encoder
					lowercase_	    =   max_position_embeddings
					lowercase_	    =   embed_init_std
					lowercase_	    =   init_std
					lowercase_	    =   summary_type
					lowercase_	    =   summary_use_proj
					lowercase_	    =   summary_activation
					lowercase_	    =   summary_proj_to_labels
					lowercase_	    =   summary_first_dropout
					lowercase_	    =   start_n_top
					lowercase_	    =   end_n_top
					lowercase_	    =   mask_token_id
					lowercase_	    =   lang_id

					if "n_words" in kwargs:
									lowercase_	    =   kwargs['''n_words''']

					super().__init__(pad_token_id=SCREAMING_SNAKE_CASE_			,				bos_token_id=SCREAMING_SNAKE_CASE_			,				**SCREAMING_SNAKE_CASE_			)

class 					lowercase__(							UpperCAmelCase				):



	"""simple docstring"""




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






"""simple docstring"""






from typing import TYPE_CHECKING

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


__SCREAMING_SNAKE_CASE							=     {
    'configuration_whisper': ['WHISPER_PRETRAINED_CONFIG_ARCHIVE_MAP', 'WhisperConfig', 'WhisperOnnxConfig'],
    'feature_extraction_whisper': ['WhisperFeatureExtractor'],
    'processing_whisper': ['WhisperProcessor'],
    'tokenization_whisper': ['WhisperTokenizer'],
}

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

try:
 if not is_torch_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 __SCREAMING_SNAKE_CASE							=     [
     'WHISPER_PRETRAINED_MODEL_ARCHIVE_LIST',
     'WhisperForConditionalGeneration',
     'WhisperModel',
     'WhisperPreTrainedModel',
     'WhisperForAudioClassification',
 ]

try:
 if not is_tf_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 __SCREAMING_SNAKE_CASE							=     [
     'TF_WHISPER_PRETRAINED_MODEL_ARCHIVE_LIST',
     'TFWhisperForConditionalGeneration',
     'TFWhisperModel',
     'TFWhisperPreTrainedModel',
 ]

try:
 if not is_flax_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 __SCREAMING_SNAKE_CASE							=     [
     'FlaxWhisperForConditionalGeneration',
     'FlaxWhisperModel',
     'FlaxWhisperPreTrainedModel',
     'FlaxWhisperForAudioClassification',
 ]


if TYPE_CHECKING:
 from .configuration_whisper import WHISPER_PRETRAINED_CONFIG_ARCHIVE_MAP, WhisperConfig, WhisperOnnxConfig
 from .feature_extraction_whisper import WhisperFeatureExtractor
 from .processing_whisper import WhisperProcessor
 from .tokenization_whisper import WhisperTokenizer

 try:
  if not is_tokenizers_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .tokenization_whisper_fast import WhisperTokenizerFast

 try:
  if not is_torch_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_whisper import (
      WHISPER_PRETRAINED_MODEL_ARCHIVE_LIST,
      WhisperForAudioClassification,
      WhisperForConditionalGeneration,
      WhisperModel,
      WhisperPreTrainedModel,
  )

 try:
  if not is_tf_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_tf_whisper import (
      TF_WHISPER_PRETRAINED_MODEL_ARCHIVE_LIST,
      TFWhisperForConditionalGeneration,
      TFWhisperModel,
      TFWhisperPreTrainedModel,
  )

 try:
  if not is_flax_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_flax_whisper import (
      FlaxWhisperForAudioClassification,
      FlaxWhisperForConditionalGeneration,
      FlaxWhisperModel,
      FlaxWhisperPreTrainedModel,
  )

else:
 import sys

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