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


_lowerCamelCase	:    Any          =      logging.get_logger(__name__)

_lowerCamelCase	:    List[Any]          =      {
    '''facebook/vit-mae-base''': '''https://huggingface.co/facebook/vit-mae-base/resolve/main/config.json''',
    # See all ViT MAE models at https://huggingface.co/models?filter=vit-mae
}




class        SCREAMING_SNAKE_CASE__					(     UpperCAmelCase ):





	'''simple docstring'''



	_UpperCAmelCase	:		Optional[int]          = "vit_mae"



	def __init__(  self     :   Any      ,  lowercase     :   List[Any]=768      ,  lowercase     :   int=12      ,  lowercase     :   str=12      ,  lowercase     :   int=3_072      ,  lowercase     :   Optional[int]="gelu"      ,  lowercase     :   List[str]=0.0      ,  lowercase     :   Tuple=0.0      ,  lowercase     :   Tuple=0.02      ,  lowercase     :   int=1E-12      ,  lowercase     :   List[str]=224      ,  lowercase     :   int=16      ,  lowercase     :   Dict=3      ,  lowercase     :   Any=True      ,  lowercase     :   Optional[int]=16      ,  lowercase     :   Tuple=512      ,  lowercase     :   Optional[int]=8      ,  lowercase     :   Union[str, Any]=2_048      ,  lowercase     :   Any=0.75      ,  lowercase     :   List[Any]=False      ,  **lowercase     :   List[Any]      ,  ):


				'''simple docstring'''


				super().__init__(**lowercase     )

				_snake_case          =      hidden_size
				_snake_case          =      num_hidden_layers
				_snake_case          =      num_attention_heads
				_snake_case          =      intermediate_size
				_snake_case          =      hidden_act
				_snake_case          =      hidden_dropout_prob
				_snake_case          =      attention_probs_dropout_prob
				_snake_case          =      initializer_range
				_snake_case          =      layer_norm_eps
				_snake_case          =      image_size
				_snake_case          =      patch_size
				_snake_case          =      num_channels
				_snake_case          =      qkv_bias
				_snake_case          =      decoder_num_attention_heads
				_snake_case          =      decoder_hidden_size
				_snake_case          =      decoder_num_hidden_layers
				_snake_case          =      decoder_intermediate_size
				_snake_case          =      mask_ratio
				_snake_case          =      norm_pix_loss

from functools import lru_cache






@lru_cache
def 	a_		(	__lowercase       :     int			)			->  int:
			if num < 0:
						raise ValueError('Number should not be negative.'			)

			return 1 if num in (0, 1) else num * factorial(num - 1			)


if __name__ == "__main__":
			import doctest

			doctest.testmod()