





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,
)


if is_sentencepiece_available():
   from ..ta.tokenization_ta import TaTokenizer
else:
   from ...utils.dummy_sentencepiece_objects import TaTokenizer

lowercase__						:      Optional[int]	=    TaTokenizer

if is_tokenizers_available():
   from ..ta.tokenization_ta_fast import TaTokenizerFast
else:
   from ...utils.dummy_tokenizers_objects import TaTokenizerFast

lowercase__						:      Tuple	=    TaTokenizerFast

lowercase__						:      List[str]	=    {'configuration_mt5': ['MT5Config', 'MT5OnnxConfig']}

try:
   if not is_torch_available():
      raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
   pass
else:
   lowercase__						:      Tuple	=    [
       'MT5EncoderModel',
       'MT5ForConditionalGeneration',
       'MT5ForQuestionAnswering',
       'MT5Model',
       'MT5PreTrainedModel',
       'MT5Stack',
   ]

try:
   if not is_tf_available():
      raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
   pass
else:
   lowercase__						:      Union[str, Any]	=    ['TFMT5EncoderModel', 'TFMT5ForConditionalGeneration', 'TFMT5Model']

try:
   if not is_flax_available():
      raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
   pass
else:
   lowercase__						:      int	=    ['FlaxMT5EncoderModel', 'FlaxMT5ForConditionalGeneration', 'FlaxMT5Model']


if TYPE_CHECKING:
   from .configuration_mta import MTaConfig, MTaOnnxConfig

   try:
      if not is_torch_available():
         raise OptionalDependencyNotAvailable()
   except OptionalDependencyNotAvailable:
      pass
   else:
      from .modeling_mta import (
          MTaEncoderModel,
          MTaForConditionalGeneration,
          MTaForQuestionAnswering,
          MTaModel,
          MTaPreTrainedModel,
          MTaStack,
      )

   try:
      if not is_tf_available():
         raise OptionalDependencyNotAvailable()
   except OptionalDependencyNotAvailable:
      pass
   else:
      from .modeling_tf_mta import TFMTaEncoderModel, TFMTaForConditionalGeneration, TFMTaModel

   try:
      if not is_flax_available():
         raise OptionalDependencyNotAvailable()
   except OptionalDependencyNotAvailable:
      pass
   else:
      from .modeling_flax_mta import FlaxMTaEncoderModel, FlaxMTaForConditionalGeneration, FlaxMTaModel

else:
   import sys

   lowercase__						:      Optional[int]	=    _LazyModule(
       __name__,
       globals()['__file__'],
       _import_structure,
       extra_objects={'MT5Tokenizer': MTaTokenizer, 'MT5TokenizerFast': MTaTokenizerFast},
       module_spec=__spec__,
   )










'''simple docstring'''

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


lowercase__						:      List[Any]	=    logging.get_logger(__name__)

lowercase__						:      Tuple	=    {
    'microsoft/trocr-base-handwritten': (
        'https://huggingface.co/microsoft/trocr-base-handwritten/resolve/main/config.json'
    ),
    # See all TrOCR models at https://huggingface.co/models?filter=trocr
}
class     __lowerCAmelCase					(   __magic_name__			):






       """simple docstring"""
       _snake_case     :					int						    =   'trocr'
       _snake_case     :					List[str]						    =   ['past_key_values']
       _snake_case     :					Tuple						    =   {
           'num_attention_heads': 'decoder_attention_heads',
           'hidden_size': 'd_model',
           'num_hidden_layers': 'decoder_layers',
       }





       def __init__(							self       :		Tuple	,			lowerCAmelCase__       :		Union[str, Any]=50265	,			lowerCAmelCase__       :		List[Any]=1024	,			lowerCAmelCase__       :		List[str]=12	,			lowerCAmelCase__       :		int=16	,			lowerCAmelCase__       :		List[Any]=4096	,			lowerCAmelCase__       :		Optional[int]="gelu"	,			lowerCAmelCase__       :		int=512	,			lowerCAmelCase__       :		Optional[Any]=0.1	,			lowerCAmelCase__       :		Optional[int]=0.0	,			lowerCAmelCase__       :		Dict=0.0	,			lowerCAmelCase__       :		Tuple=2	,			lowerCAmelCase__       :		Dict=0.02	,			lowerCAmelCase__       :		Tuple=0.0	,			lowerCAmelCase__       :		int=True	,			lowerCAmelCase__       :		Optional[Any]=False	,			lowerCAmelCase__       :		Any=True	,			lowerCAmelCase__       :		Dict=True	,			lowerCAmelCase__       :		Optional[int]=1	,			lowerCAmelCase__       :		List[Any]=0	,			lowerCAmelCase__       :		Any=2	,			**lowerCAmelCase__       :		Optional[int]	,			)   ->					Any:

            '''simple docstring'''




            _UpperCamelCase       =	vocab_size
            _UpperCamelCase       =	d_model
            _UpperCamelCase       =	decoder_layers
            _UpperCamelCase       =	decoder_attention_heads
            _UpperCamelCase       =	decoder_ffn_dim
            _UpperCamelCase       =	activation_function
            _UpperCamelCase       =	max_position_embeddings
            _UpperCamelCase       =	dropout
            _UpperCamelCase       =	attention_dropout
            _UpperCamelCase       =	activation_dropout
            _UpperCamelCase       =	init_std
            _UpperCamelCase       =	decoder_layerdrop
            _UpperCamelCase       =	use_cache
            _UpperCamelCase       =	scale_embedding
            _UpperCamelCase       =	use_learned_position_embeddings
            _UpperCamelCase       =	layernorm_embedding

            super().__init__(
                pad_token_id=lowerCAmelCase__	,			bos_token_id=lowerCAmelCase__	,			eos_token_id=lowerCAmelCase__	,			decoder_start_token_id=lowerCAmelCase__	,			**lowerCAmelCase__	,			)



