


import os
import sys

a : Optional[int]		=				os.path.join(os.path.dirname(__file__), '''src''')
sys.path.append(SRC_DIR)


from transformers import (
    AutoConfig,
    AutoModel,
    AutoModelForCausalLM,
    AutoModelForMaskedLM,
    AutoModelForQuestionAnswering,
    AutoModelForSequenceClassification,
    AutoTokenizer,
    add_start_docstrings,
)


a : int		=				[
    '''torch''',
    '''numpy''',
    '''tokenizers''',
    '''filelock''',
    '''requests''',
    '''tqdm''',
    '''regex''',
    '''sentencepiece''',
    '''sacremoses''',
    '''importlib_metadata''',
    '''huggingface_hub''',
]


@add_start_docstrings(AutoConfig.__doc__  )
def 		lowercase_  (     *_UpperCamelCase       ,			**_UpperCamelCase  ):


			'''simple docstring'''







			return AutoConfig.from_pretrained(*_UpperCamelCase       ,			**_UpperCamelCase  )


@add_start_docstrings(AutoTokenizer.__doc__  )
def 		lowercase_  (     *_UpperCamelCase       ,			**_UpperCamelCase  ):


			'''simple docstring'''







			return AutoTokenizer.from_pretrained(*_UpperCamelCase       ,			**_UpperCamelCase  )


@add_start_docstrings(AutoModel.__doc__  )
def 		lowercase_  (     *_UpperCamelCase       ,			**_UpperCamelCase  ):


			'''simple docstring'''







			return AutoModel.from_pretrained(*_UpperCamelCase       ,			**_UpperCamelCase  )


@add_start_docstrings(AutoModelForCausalLM.__doc__  )
def 		lowercase_  (     *_UpperCamelCase       ,			**_UpperCamelCase  ):


			'''simple docstring'''







			return AutoModelForCausalLM.from_pretrained(*_UpperCamelCase       ,			**_UpperCamelCase  )


@add_start_docstrings(AutoModelForMaskedLM.__doc__  )
def 		lowercase_  (     *_UpperCamelCase       ,			**_UpperCamelCase  ):


			'''simple docstring'''







			return AutoModelForMaskedLM.from_pretrained(*_UpperCamelCase       ,			**_UpperCamelCase  )


@add_start_docstrings(AutoModelForSequenceClassification.__doc__  )
def 		lowercase_  (     *_UpperCamelCase       ,			**_UpperCamelCase  ):


			'''simple docstring'''







			return AutoModelForSequenceClassification.from_pretrained(*_UpperCamelCase       ,			**_UpperCamelCase  )





@add_start_docstrings(AutoModelForQuestionAnswering.__doc__  )
def 		lowercase_  (     *_UpperCamelCase       ,			**_UpperCamelCase  ):


			'''simple docstring'''







			return AutoModelForQuestionAnswering.from_pretrained(*_UpperCamelCase       ,			**_UpperCamelCase  )






from typing import List

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


a : Any		=				logging.get_logger(__name__)

a : int		=				{
    '''snap-research/efficientformer-l1-300''': (
        '''https://huggingface.co/snap-research/efficientformer-l1-300/resolve/main/config.json'''
    ),
}
class 	lowerCamelCase_       (				lowerCAmelCase__				):



					'''simple docstring'''







					__UpperCAmelCase            =				"efficientformer"






					def __init__(				self ,       snake_case_ = [3, 2, 6, 4] ,       snake_case_ = [4_8, 9_6, 2_2_4, 4_4_8] ,       snake_case_ = [True, True, True, True] ,       snake_case_ = 4_4_8 ,       snake_case_ = 3_2 ,       snake_case_ = 4 ,       snake_case_ = 7 ,       snake_case_ = 5 ,       snake_case_ = 8 ,       snake_case_ = 4 ,       snake_case_ = 0.0 ,       snake_case_ = 1_6 ,       snake_case_ = 3 ,       snake_case_ = 3 ,       snake_case_ = 3 ,       snake_case_ = 2 ,       snake_case_ = 1 ,       snake_case_ = 0.0 ,       snake_case_ = 1 ,       snake_case_ = True ,       snake_case_ = True ,       snake_case_ = 1e-5 ,       snake_case_ = "gelu" ,       snake_case_ = 0.0_2 ,       snake_case_ = 1e-1_2 ,       snake_case_ = 2_2_4 ,       snake_case_ = 1e-0_5 ,       **snake_case_ ,       )   ->			None:







								'''simple docstring'''

								super().__init__(**snake_case_						)

								__lowercase 					=   hidden_act
								__lowercase 					=   hidden_dropout_prob
								__lowercase 					=   hidden_sizes
								__lowercase 					=   num_hidden_layers
								__lowercase 					=   num_attention_heads
								__lowercase 					=   initializer_range
								__lowercase 					=   layer_norm_eps
								__lowercase 					=   patch_size
								__lowercase 					=   num_channels
								__lowercase 					=   depths
								__lowercase 					=   mlp_expansion_ratio
								__lowercase 					=   downsamples
								__lowercase 					=   dim
								__lowercase 					=   key_dim
								__lowercase 					=   attention_ratio
								__lowercase 					=   resolution
								__lowercase 					=   pool_size
								__lowercase 					=   downsample_patch_size
								__lowercase 					=   downsample_stride
								__lowercase 					=   downsample_pad
								__lowercase 					=   drop_path_rate
								__lowercase 					=   num_metaad_blocks
								__lowercase 					=   distillation
								__lowercase 					=   use_layer_scale
								__lowercase 					=   layer_scale_init_value
								__lowercase 					=   image_size
								__lowercase 					=   batch_norm_eps


