


"""simple docstring"""




import functools
import operator

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


lowercase_     	=    logging.get_logger(__name__)

lowercase_     	=    {
    "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    __lowerCAmelCase   (  _lowercase			):


		'''simple docstring'''



		__UpperCAmelCase						:     Tuple									=							'''wavlm'''

		def __init__(    self				,					_a=32				,					_a=768				,					_a=12				,					_a=12				,					_a=3_072				,					_a="gelu"				,					_a=0.1				,					_a=0.1				,					_a=0.1				,					_a=0.0				,					_a=0.1				,					_a=0.1				,					_a=0.02				,					_a=1E-5				,					_a="group"				,					_a="gelu"				,					_a=(512, 512, 512, 512, 512, 512, 512)				,					_a=(5, 2, 2, 2, 2, 2, 2)				,					_a=(10, 3, 3, 3, 3, 2, 2)				,					_a=False				,					_a=128				,					_a=16				,					_a=320				,					_a=800				,					_a=False				,					_a=True				,					_a=0.05				,					_a=10				,					_a=2				,					_a=0.0				,					_a=10				,					_a=320				,					_a=2				,					_a=0.1				,					_a=100				,					_a=256				,					_a=256				,					_a=0.1				,					_a="mean"				,					_a=False				,					_a=False				,					_a=256				,					_a=(512, 512, 512, 512, 1_500)				,					_a=(5, 3, 3, 1, 1)				,					_a=(1, 2, 3, 1, 1)				,					_a=512				,					_a=80				,					_a=0				,					_a=1				,					_a=2				,					_a=False				,					_a=3				,					_a=2				,					_a=3				,					_a=None				,					**_a				,					):
				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_buckets
				__a	 =     max_bucket_distance
				__a	 =     num_conv_pos_embeddings
				__a	 =     num_conv_pos_embedding_groups
				__a	 =     len(self.conv_dim )
				__a	 =     num_hidden_layers
				__a	 =     intermediate_size
				__a	 =     hidden_act
				__a	 =     num_attention_heads
				__a	 =     hidden_dropout
				__a	 =     attention_dropout
				__a	 =     activation_dropout
				__a	 =     feat_proj_dropout
				__a	 =     final_dropout
				__a	 =     layerdrop
				__a	 =     layer_norm_eps
				__a	 =     initializer_range
				__a	 =     num_ctc_classes
				__a	 =     vocab_size
				__a	 =     do_stable_layer_norm
				__a	 =     use_weighted_layer_sum
				__a	 =     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
				__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

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

				# ctc loss
				__a	 =     ctc_loss_reduction
				__a	 =     ctc_zero_infinity

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

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

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





		@property
		def      __UpperCAmelCase			(    self ):
				return functools.reduce(operator.mul				,					self.conv_stride				,					1 )








"""simple docstring"""


from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available


_lowercase				 =					{
    '''configuration_xlm_roberta_xl''': [
        '''XLM_ROBERTA_XL_PRETRAINED_CONFIG_ARCHIVE_MAP''',
        '''XLMRobertaXLConfig''',
        '''XLMRobertaXLOnnxConfig''',
    ],
}

try:
		if not is_torch_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		_lowercase				 =					[
		    '''XLM_ROBERTA_XL_PRETRAINED_MODEL_ARCHIVE_LIST''',
		    '''XLMRobertaXLForCausalLM''',
		    '''XLMRobertaXLForMaskedLM''',
		    '''XLMRobertaXLForMultipleChoice''',
		    '''XLMRobertaXLForQuestionAnswering''',
		    '''XLMRobertaXLForSequenceClassification''',
		    '''XLMRobertaXLForTokenClassification''',
		    '''XLMRobertaXLModel''',
		    '''XLMRobertaXLPreTrainedModel''',
		]

if TYPE_CHECKING:
		from .configuration_xlm_roberta_xl import (
		    XLM_ROBERTA_XL_PRETRAINED_CONFIG_ARCHIVE_MAP,
		    XLMRobertaXLConfig,
		    XLMRobertaXLOnnxConfig,
		)

		try:
				if not is_torch_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .modeling_xlm_roberta_xl import (
				    XLM_ROBERTA_XL_PRETRAINED_MODEL_ARCHIVE_LIST,
				    XLMRobertaXLForCausalLM,
				    XLMRobertaXLForMaskedLM,
				    XLMRobertaXLForMultipleChoice,
				    XLMRobertaXLForQuestionAnswering,
				    XLMRobertaXLForSequenceClassification,
				    XLMRobertaXLForTokenClassification,
				    XLMRobertaXLModel,
				    XLMRobertaXLPreTrainedModel,
				)

else:
		import sys

		_lowercase				 =					_LazyModule(__name__, globals()['''__file__'''], _import_structure)