
import functools
import operator

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


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

lowercase__							:							List[Any]									=			{
    "microsoft/wavlm-base": "https://huggingface.co/microsoft/wavlm-base/resolve/main/config.json",
    # See all WavLM models at https://huggingface.co/models?filter=wavlm
}






class        SCREAMING_SNAKE_CASE__    (							SCREAMING_SNAKE_CASE_    ):

							"""simple docstring"""






							_snake_case     		=  'wavlm'



							def __init__(  self     ,	SCREAMING_SNAKE_CASE_=32     ,	SCREAMING_SNAKE_CASE_=768     ,	SCREAMING_SNAKE_CASE_=12     ,	SCREAMING_SNAKE_CASE_=12     ,	SCREAMING_SNAKE_CASE_=3072     ,	SCREAMING_SNAKE_CASE_="gelu"     ,	SCREAMING_SNAKE_CASE_=0.1     ,	SCREAMING_SNAKE_CASE_=0.1     ,	SCREAMING_SNAKE_CASE_=0.1     ,	SCREAMING_SNAKE_CASE_=0.0     ,	SCREAMING_SNAKE_CASE_=0.1     ,	SCREAMING_SNAKE_CASE_=0.1     ,	SCREAMING_SNAKE_CASE_=0.0_2     ,	SCREAMING_SNAKE_CASE_=1E-5     ,	SCREAMING_SNAKE_CASE_="group"     ,	SCREAMING_SNAKE_CASE_="gelu"     ,	SCREAMING_SNAKE_CASE_=(512, 512, 512, 512, 512, 512, 512)     ,	SCREAMING_SNAKE_CASE_=(5, 2, 2, 2, 2, 2, 2)     ,	SCREAMING_SNAKE_CASE_=(10, 3, 3, 3, 3, 2, 2)     ,	SCREAMING_SNAKE_CASE_=False     ,	SCREAMING_SNAKE_CASE_=128     ,	SCREAMING_SNAKE_CASE_=16     ,	SCREAMING_SNAKE_CASE_=320     ,	SCREAMING_SNAKE_CASE_=800     ,	SCREAMING_SNAKE_CASE_=False     ,	SCREAMING_SNAKE_CASE_=True     ,	SCREAMING_SNAKE_CASE_=0.0_5     ,	SCREAMING_SNAKE_CASE_=10     ,	SCREAMING_SNAKE_CASE_=2     ,	SCREAMING_SNAKE_CASE_=0.0     ,	SCREAMING_SNAKE_CASE_=10     ,	SCREAMING_SNAKE_CASE_=320     ,	SCREAMING_SNAKE_CASE_=2     ,	SCREAMING_SNAKE_CASE_=0.1     ,	SCREAMING_SNAKE_CASE_=100     ,	SCREAMING_SNAKE_CASE_=256     ,	SCREAMING_SNAKE_CASE_=256     ,	SCREAMING_SNAKE_CASE_=0.1     ,	SCREAMING_SNAKE_CASE_="mean"     ,	SCREAMING_SNAKE_CASE_=False     ,	SCREAMING_SNAKE_CASE_=False     ,	SCREAMING_SNAKE_CASE_=256     ,	SCREAMING_SNAKE_CASE_=(512, 512, 512, 512, 1500)     ,	SCREAMING_SNAKE_CASE_=(5, 3, 3, 1, 1)     ,	SCREAMING_SNAKE_CASE_=(1, 2, 3, 1, 1)     ,	SCREAMING_SNAKE_CASE_=512     ,	SCREAMING_SNAKE_CASE_=80     ,	SCREAMING_SNAKE_CASE_=0     ,	SCREAMING_SNAKE_CASE_=1     ,	SCREAMING_SNAKE_CASE_=2     ,	SCREAMING_SNAKE_CASE_=False     ,	SCREAMING_SNAKE_CASE_=3     ,	SCREAMING_SNAKE_CASE_=2     ,	SCREAMING_SNAKE_CASE_=3     ,	SCREAMING_SNAKE_CASE_=None     ,	**SCREAMING_SNAKE_CASE_     ,	)->   Any:





													'''simple docstring'''






													super().__init__(**SCREAMING_SNAKE_CASE_     ,	pad_token_id=SCREAMING_SNAKE_CASE_     ,	bos_token_id=SCREAMING_SNAKE_CASE_     ,	eos_token_id=SCREAMING_SNAKE_CASE_			)
													__UpperCamelCase       =			hidden_size
													__UpperCamelCase       =			feat_extract_norm
													__UpperCamelCase       =			feat_extract_activation
													__UpperCamelCase       =			list(SCREAMING_SNAKE_CASE_			)
													__UpperCamelCase       =			list(SCREAMING_SNAKE_CASE_			)
													__UpperCamelCase       =			list(SCREAMING_SNAKE_CASE_			)
													__UpperCamelCase       =			conv_bias
													__UpperCamelCase       =			num_buckets
													__UpperCamelCase       =			max_bucket_distance
													__UpperCamelCase       =			num_conv_pos_embeddings
													__UpperCamelCase       =			num_conv_pos_embedding_groups
													__UpperCamelCase       =			len(self.conv_dim			)
													__UpperCamelCase       =			num_hidden_layers
													__UpperCamelCase       =			intermediate_size
													__UpperCamelCase       =			hidden_act
													__UpperCamelCase       =			num_attention_heads
													__UpperCamelCase       =			hidden_dropout
													__UpperCamelCase       =			attention_dropout
													__UpperCamelCase       =			activation_dropout
													__UpperCamelCase       =			feat_proj_dropout
													__UpperCamelCase       =			final_dropout
													__UpperCamelCase       =			layerdrop
													__UpperCamelCase       =			layer_norm_eps
													__UpperCamelCase       =			initializer_range
													__UpperCamelCase       =			num_ctc_classes
													__UpperCamelCase       =			vocab_size
													__UpperCamelCase       =			do_stable_layer_norm
													__UpperCamelCase       =			use_weighted_layer_sum
													__UpperCamelCase       =			classifier_proj_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)`, but is `len(config.conv_dim) ='''
																			    F" {len(self.conv_dim			)}`, `len(config.conv_stride) = {len(self.conv_stride			)}`,"
																			    F" `len(config.conv_kernel) = {len(self.conv_kernel			)}`."			)

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

													# parameters for pretraining with codevector quantized representations
													__UpperCamelCase       =			num_codevectors_per_group
													__UpperCamelCase       =			num_codevector_groups
													__UpperCamelCase       =			contrastive_logits_temperature
													__UpperCamelCase       =			num_negatives
													__UpperCamelCase       =			codevector_dim
													__UpperCamelCase       =			proj_codevector_dim
													__UpperCamelCase       =			diversity_loss_weight

													# ctc loss
													__UpperCamelCase       =			ctc_loss_reduction
													__UpperCamelCase       =			ctc_zero_infinity

													# adapter
													__UpperCamelCase       =			add_adapter
													__UpperCamelCase       =			adapter_kernel_size
													__UpperCamelCase       =			adapter_stride
													__UpperCamelCase       =			num_adapter_layers
													__UpperCamelCase       =			output_hidden_size or hidden_size

													# SequenceClassification-specific parameter. Feel free to ignore for other classes.
													__UpperCamelCase       =			classifier_proj_size

													# XVector-specific parameters. Feel free to ignore for other classes.
													__UpperCamelCase       =			list(SCREAMING_SNAKE_CASE_			)
													__UpperCamelCase       =			list(SCREAMING_SNAKE_CASE_			)
													__UpperCamelCase       =			list(SCREAMING_SNAKE_CASE_			)
													__UpperCamelCase       =			xvector_output_dim



							@property
							def     A__		(  self			)->   Tuple:





													'''simple docstring'''






													return functools.reduce(operator.mul     ,	self.conv_stride     ,	1			)






from .configuration_bert_masked import MaskedBertConfig
from .modeling_bert_masked import (
    MaskedBertForMultipleChoice,
    MaskedBertForQuestionAnswering,
    MaskedBertForSequenceClassification,
    MaskedBertForTokenClassification,
    MaskedBertModel,
)
from .modules import *




