


from typing import TYPE_CHECKING

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


snake_case__			 =						{'''configuration_beit''': ['''BEIT_PRETRAINED_CONFIG_ARCHIVE_MAP''', '''BeitConfig''', '''BeitOnnxConfig''']}

try:
		if not is_vision_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		snake_case__			 =						['''BeitFeatureExtractor''']
		snake_case__			 =						['''BeitImageProcessor''']

try:
		if not is_torch_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		snake_case__			 =						[
		    '''BEIT_PRETRAINED_MODEL_ARCHIVE_LIST''',
		    '''BeitForImageClassification''',
		    '''BeitForMaskedImageModeling''',
		    '''BeitForSemanticSegmentation''',
		    '''BeitModel''',
		    '''BeitPreTrainedModel''',
		]


try:
		if not is_flax_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		snake_case__			 =						[
		    '''FlaxBeitForImageClassification''',
		    '''FlaxBeitForMaskedImageModeling''',
		    '''FlaxBeitModel''',
		    '''FlaxBeitPreTrainedModel''',
		]

if TYPE_CHECKING:
		from .configuration_beit import BEIT_PRETRAINED_CONFIG_ARCHIVE_MAP, BeitConfig, BeitOnnxConfig

		try:
				if not is_vision_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .feature_extraction_beit import BeitFeatureExtractor
				from .image_processing_beit import BeitImageProcessor

		try:
				if not is_torch_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .modeling_beit import (
				    BEIT_PRETRAINED_MODEL_ARCHIVE_LIST,
				    BeitForImageClassification,
				    BeitForMaskedImageModeling,
				    BeitForSemanticSegmentation,
				    BeitModel,
				    BeitPreTrainedModel,
				)

		try:
				if not is_flax_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .modeling_flax_beit import (
				    FlaxBeitForImageClassification,
				    FlaxBeitForMaskedImageModeling,
				    FlaxBeitModel,
				    FlaxBeitPreTrainedModel,
				)


else:
		import sys

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






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


snake_case__			 =						logging.get_logger(__name__)

snake_case__			 =						{
    '''google/pegasus-large''': '''https://huggingface.co/google/pegasus-large/resolve/main/config.json''',
    # See all PEGASUS models at https://huggingface.co/models?filter=pegasus
}


class 					lowerCAmelCase_ (       _a):
						lowerCamelCase_         =     'pegasus'
						lowerCamelCase_         =     ['past_key_values']
						lowerCamelCase_         =     {'num_attention_heads': 'encoder_attention_heads', 'hidden_size': 'd_model'}




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






									"""simple docstring"""






									a__ :Any						  =    vocab_size
									a__ :List[str]						  =    max_position_embeddings
									a__ :int						  =    d_model
									a__ :Union[str, Any]						  =    encoder_ffn_dim
									a__ :List[Any]						  =    encoder_layers
									a__ :Union[str, Any]						  =    encoder_attention_heads
									a__ :Tuple						  =    decoder_ffn_dim
									a__ :List[Any]						  =    decoder_layers
									a__ :Tuple						  =    decoder_attention_heads
									a__ :Optional[int]						  =    dropout
									a__ :str						  =    attention_dropout
									a__ :Optional[int]						  =    activation_dropout
									a__ :str						  =    activation_function
									a__ :Dict						  =    init_std
									a__ :Any						  =    encoder_layerdrop
									a__ :int						  =    decoder_layerdrop
									a__ :Union[str, Any]						  =    use_cache
									a__ :List[Any]						  =    encoder_layers
									a__ :Dict						  =    scale_embedding  # scale factor will be sqrt(d_model) if True
									super().__init__(
									    pad_token_id=__A   ,     eos_token_id=__A   ,     is_encoder_decoder=__A   ,     decoder_start_token_id=__A   ,     forced_eos_token_id=__A   ,     **__A   ,     )




						@property
						def  _snake_case					(	self						:   Optional[Any]						)      ->int:






									"""simple docstring"""






									return self.encoder_attention_heads






						@property
						def  _snake_case					(	self						:   Union[str, Any]						)      ->int:






									"""simple docstring"""






									return self.d_model


