
import functools
import operator

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


SCREAMING_SNAKE_CASE							:Tuple							 =				logging.get_logger(__name__)

SCREAMING_SNAKE_CASE							:str							 =				{
    'asapp/sew-d-tiny-100k': 'https://huggingface.co/asapp/sew-d-tiny-100k/resolve/main/config.json',
    # See all SEW-D models at https://huggingface.co/models?filter=sew-d
}





class 							UpperCAmelCase      (  __SCREAMING_SNAKE_CASE  ):




	'''simple docstring'''





	snake_case_					    =     "sew-d"






	def __init__(       self					: List[str]							,A					: Dict=32							,A					: Optional[int]=7_68							,A					: Dict=12							,A					: Union[str, Any]=12							,A					: Any=30_72							,A					: List[str]=2							,A					: List[str]=5_12							,A					: str=2_56							,A					: int=True							,A					: Any=True							,A					: Tuple=("p2c", "c2p")							,A					: str="layer_norm"							,A					: List[str]="gelu_python"							,A					: Union[str, Any]=0.1							,A					: Optional[Any]=0.1							,A					: Dict=0.1							,A					: Optional[int]=0.0							,A					: List[str]=0.1							,A					: int=0.02							,A					: Any=1E-7							,A					: List[Any]=1E-5							,A					: str="group"							,A					: int="gelu"							,A					: List[str]=(64, 1_28, 1_28, 1_28, 1_28, 2_56, 2_56, 2_56, 2_56, 5_12, 5_12, 5_12, 5_12)							,A					: Dict=(5, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1)							,A					: Dict=(10, 3, 1, 3, 1, 3, 1, 3, 1, 2, 1, 2, 1)							,A					: Union[str, Any]=False							,A					: Dict=1_28							,A					: Dict=16							,A					: Optional[Any]=True							,A					: List[str]=0.05							,A					: Dict=10							,A					: Tuple=2							,A					: List[Any]=0.0							,A					: List[str]=10							,A					: List[Any]=0							,A					: Dict="mean"							,A					: str=False							,A					: int=False							,A					: Optional[int]=2_56							,A					: Optional[int]=0							,A					: List[Any]=1							,A					: Tuple=2							,**A					: Dict							,):
					super().__init__(**A							,pad_token_id=A							,bos_token_id=A							,eos_token_id=A )
					__A   			= hidden_size
					__A   			= feat_extract_norm
					__A   			= feat_extract_activation
					__A   			= list(A )
					__A   			= list(A )
					__A   			= list(A )
					__A   			= conv_bias
					__A   			= num_conv_pos_embeddings
					__A   			= num_conv_pos_embedding_groups
					__A   			= len(self.conv_dim )
					__A   			= num_hidden_layers
					__A   			= intermediate_size
					__A   			= squeeze_factor
					__A   			= max_position_embeddings
					__A   			= position_buckets
					__A   			= share_att_key
					__A   			= relative_attention
					__A   			= norm_rel_ebd
					__A   			= list(A )
					__A   			= hidden_act
					__A   			= num_attention_heads
					__A   			= hidden_dropout
					__A   			= attention_dropout
					__A   			= activation_dropout
					__A   			= feat_proj_dropout
					__A   			= final_dropout
					__A   			= layer_norm_eps
					__A   			= feature_layer_norm_eps
					__A   			= initializer_range
					__A   			= vocab_size

					if (
					    (len(self.conv_stride ) != self.num_feat_extract_layers)
					    or (len(self.conv_kernel ) != self.num_feat_extract_layers)
					    or (len(self.conv_dim ) != self.num_feat_extract_layers)
					):
									raise ValueError(
									    "Configuration for convolutional layers is incorrect."
									    "It is required that `len(config.conv_dim)` == `len(config.conv_stride)` == `len(config.conv_kernel)`,"
									    f'''but is `len(config.conv_dim) = {len(self.conv_dim )}`, `len(config.conv_stride)'''
									    f'''= {len(self.conv_stride )}`, `len(config.conv_kernel) = {len(self.conv_kernel )}`.''' )

					# fine-tuning config parameters for SpecAugment: https://arxiv.org/abs/1904.08779
					__A   			= apply_spec_augment
					__A   			= mask_time_prob
					__A   			= mask_time_length
					__A   			= mask_time_min_masks
					__A   			= mask_feature_prob
					__A   			= mask_feature_length
					__A   			= mask_feature_min_masks

					# ctc loss
					__A   			= ctc_loss_reduction
					__A   			= ctc_zero_infinity

					# sequence classification
					__A   			= use_weighted_layer_sum
					__A   			= classifier_proj_size







	@property
	def 				UpperCamelCase_  (       self					: List[str] ):
					return functools.reduce(operator.mul							,self.conv_stride							,1 )




from .glue import glue_convert_examples_to_features, glue_output_modes, glue_processors, glue_tasks_num_labels
from .squad import SquadExample, SquadFeatures, SquadVaProcessor, SquadVaProcessor, squad_convert_examples_to_features
from .utils import DataProcessor, InputExample, InputFeatures, SingleSentenceClassificationProcessor
from .xnli import xnli_output_modes, xnli_processors, xnli_tasks_num_labels