



'''simple docstring'''





from collections import OrderedDict
from typing import Mapping

from ...configuration_utils import PretrainedConfig
from ...onnx import OnnxConfig
from ...utils import logging


UpperCamelCase__  :			Optional[int]          =					logging.get_logger(__name__)

UpperCamelCase__  :			Tuple          =					{
    """facebook/data2vec-text-base""": """https://huggingface.co/data2vec/resolve/main/config.json""",
}


class 				_lowerCAmelCase     (   _UpperCAmelCase				):


 """simple docstring"""

 lowerCamelCase		       =			'''data2vec-text'''







 def __init__(	self ,  _lowerCamelCase=3_0522 ,  _lowerCamelCase=768 ,  _lowerCamelCase=12 ,  _lowerCamelCase=12 ,  _lowerCamelCase=3072 ,  _lowerCamelCase="gelu" ,  _lowerCamelCase=0.1 ,  _lowerCamelCase=0.1 ,  _lowerCamelCase=512 ,  _lowerCamelCase=2 ,  _lowerCamelCase=0.02 ,  _lowerCamelCase=1e-12 ,  _lowerCamelCase=1 ,  _lowerCamelCase=0 ,  _lowerCamelCase=2 ,  _lowerCamelCase="absolute" ,  _lowerCamelCase=True ,  _lowerCamelCase=None ,  **_lowerCamelCase ,  )  ->  Any:
    super().__init__(pad_token_id=lowerCAmelCase__ ,  bos_token_id=lowerCAmelCase__ ,  eos_token_id=lowerCAmelCase__ ,  **lowerCAmelCase__   )

    A_   :						List[Any]		= vocab_size
    A_   :						str		= hidden_size
    A_   :						List[Any]		= num_hidden_layers
    A_   :						Any		= num_attention_heads
    A_   :						int		= hidden_act
    A_   :						str		= intermediate_size
    A_   :						Any		= hidden_dropout_prob
    A_   :						str		= attention_probs_dropout_prob
    A_   :						Optional[Any]		= max_position_embeddings
    A_   :						Union[str, Any]		= type_vocab_size
    A_   :						Any		= initializer_range
    A_   :						List[Any]		= layer_norm_eps
    A_   :						Any		= position_embedding_type
    A_   :						Tuple		= use_cache
    A_   :						Any		= classifier_dropout


class 				_lowerCAmelCase     (   _UpperCAmelCase				):


 """simple docstring"""

 @property
 def 	UpperCAmelCase_    (	self   )  ->  Mapping[str, Mapping[int, str]]:


    if self.task == "multiple-choice":
       A_   :						Tuple		= {0: """batch""", 1: """choice""", 2: """sequence"""}
    else:
       A_   :						Optional[Any]		= {0: """batch""", 1: """sequence"""}
    return OrderedDict(
        [
            ("""input_ids""", dynamic_axis),
            ("""attention_mask""", dynamic_axis),
        ]   )

import functools
import operator

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


__a  :     str       =  logging.get_logger(__name__)

__a  :     int       =  {
    """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    _UpperCamelCase      (						_UpperCAmelCase ):


			"""simple docstring"""






			__a  : Any			 =						'''wavlm'''





			def __init__(   self      ,   lowerCAmelCase__=32      ,   lowerCAmelCase__=7_68      ,   lowerCAmelCase__=12      ,   lowerCAmelCase__=12      ,   lowerCAmelCase__=30_72      ,   lowerCAmelCase__="gelu"      ,   lowerCAmelCase__=0.1      ,   lowerCAmelCase__=0.1      ,   lowerCAmelCase__=0.1      ,   lowerCAmelCase__=0.0      ,   lowerCAmelCase__=0.1      ,   lowerCAmelCase__=0.1      ,   lowerCAmelCase__=0.02      ,   lowerCAmelCase__=1E-5      ,   lowerCAmelCase__="group"      ,   lowerCAmelCase__="gelu"      ,   lowerCAmelCase__=(5_12, 5_12, 5_12, 5_12, 5_12, 5_12, 5_12)      ,   lowerCAmelCase__=(5, 2, 2, 2, 2, 2, 2)      ,   lowerCAmelCase__=(10, 3, 3, 3, 3, 2, 2)      ,   lowerCAmelCase__=False      ,   lowerCAmelCase__=1_28      ,   lowerCAmelCase__=16      ,   lowerCAmelCase__=3_20      ,   lowerCAmelCase__=8_00      ,   lowerCAmelCase__=False      ,   lowerCAmelCase__=True      ,   lowerCAmelCase__=0.05      ,   lowerCAmelCase__=10      ,   lowerCAmelCase__=2      ,   lowerCAmelCase__=0.0      ,   lowerCAmelCase__=10      ,   lowerCAmelCase__=3_20      ,   lowerCAmelCase__=2      ,   lowerCAmelCase__=0.1      ,   lowerCAmelCase__=1_00      ,   lowerCAmelCase__=2_56      ,   lowerCAmelCase__=2_56      ,   lowerCAmelCase__=0.1      ,   lowerCAmelCase__="mean"      ,   lowerCAmelCase__=False      ,   lowerCAmelCase__=False      ,   lowerCAmelCase__=2_56      ,   lowerCAmelCase__=(5_12, 5_12, 5_12, 5_12, 15_00)      ,   lowerCAmelCase__=(5, 3, 3, 1, 1)      ,   lowerCAmelCase__=(1, 2, 3, 1, 1)      ,   lowerCAmelCase__=5_12      ,   lowerCAmelCase__=80      ,   lowerCAmelCase__=0      ,   lowerCAmelCase__=1      ,   lowerCAmelCase__=2      ,   lowerCAmelCase__=False      ,   lowerCAmelCase__=3      ,   lowerCAmelCase__=2      ,   lowerCAmelCase__=3      ,   lowerCAmelCase__=None      ,   **lowerCAmelCase__      ,   )     ->					Tuple:

							'''simple docstring'''


							super().__init__(**lowerCAmelCase__      ,   pad_token_id=lowerCAmelCase__      ,   bos_token_id=lowerCAmelCase__      ,   eos_token_id=lowerCAmelCase__						)
							__lowercase 			=							hidden_size
							__lowercase 			=							feat_extract_norm
							__lowercase 			=							feat_extract_activation
							__lowercase 			=							list(lowerCAmelCase__						)
							__lowercase 			=							list(lowerCAmelCase__						)
							__lowercase 			=							list(lowerCAmelCase__						)
							__lowercase 			=							conv_bias
							__lowercase 			=							num_buckets
							__lowercase 			=							max_bucket_distance
							__lowercase 			=							num_conv_pos_embeddings
							__lowercase 			=							num_conv_pos_embedding_groups
							__lowercase 			=							len(self.conv_dim						)
							__lowercase 			=							num_hidden_layers
							__lowercase 			=							intermediate_size
							__lowercase 			=							hidden_act
							__lowercase 			=							num_attention_heads
							__lowercase 			=							hidden_dropout
							__lowercase 			=							attention_dropout
							__lowercase 			=							activation_dropout
							__lowercase 			=							feat_proj_dropout
							__lowercase 			=							final_dropout
							__lowercase 			=							layerdrop
							__lowercase 			=							layer_norm_eps
							__lowercase 			=							initializer_range
							__lowercase 			=							num_ctc_classes
							__lowercase 			=							vocab_size
							__lowercase 			=							do_stable_layer_norm
							__lowercase 			=							use_weighted_layer_sum
							__lowercase 			=							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
							__lowercase 			=							apply_spec_augment
							__lowercase 			=							mask_time_prob
							__lowercase 			=							mask_time_length
							__lowercase 			=							mask_time_min_masks
							__lowercase 			=							mask_feature_prob
							__lowercase 			=							mask_feature_length

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

							# ctc loss
							__lowercase 			=							ctc_loss_reduction
							__lowercase 			=							ctc_zero_infinity

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

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

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





			@property
			def        _SCREAMING_SNAKE_CASE			(   self						)     ->					int:

							'''simple docstring'''


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