



'''simple docstring'''



import functools
import operator

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


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

a__    :      List[str]      				=      {
    '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__	(     __a):
 __SCREAMING_SNAKE_CASE          =					'''wavlm'''



 def __init__(	self		,						lowercase=3_2		,						lowercase=7_6_8		,						lowercase=1_2		,						lowercase=1_2		,						lowercase=3_0_7_2		,						lowercase="gelu"		,						lowercase=0.1		,						lowercase=0.1		,						lowercase=0.1		,						lowercase=0.0		,						lowercase=0.1		,						lowercase=0.1		,						lowercase=0.02		,						lowercase=1E-5		,						lowercase="group"		,						lowercase="gelu"		,						lowercase=(5_1_2, 5_1_2, 5_1_2, 5_1_2, 5_1_2, 5_1_2, 5_1_2)		,						lowercase=(5, 2, 2, 2, 2, 2, 2)		,						lowercase=(1_0, 3, 3, 3, 3, 2, 2)		,						lowercase=False		,						lowercase=1_2_8		,						lowercase=1_6		,						lowercase=3_2_0		,						lowercase=8_0_0		,						lowercase=False		,						lowercase=True		,						lowercase=0.05		,						lowercase=1_0		,						lowercase=2		,						lowercase=0.0		,						lowercase=1_0		,						lowercase=3_2_0		,						lowercase=2		,						lowercase=0.1		,						lowercase=1_0_0		,						lowercase=2_5_6		,						lowercase=2_5_6		,						lowercase=0.1		,						lowercase="mean"		,						lowercase=False		,						lowercase=False		,						lowercase=2_5_6		,						lowercase=(5_1_2, 5_1_2, 5_1_2, 5_1_2, 1_5_0_0)		,						lowercase=(5, 3, 3, 1, 1)		,						lowercase=(1, 2, 3, 1, 1)		,						lowercase=5_1_2		,						lowercase=8_0		,						lowercase=0		,						lowercase=1		,						lowercase=2		,						lowercase=False		,						lowercase=3		,						lowercase=2		,						lowercase=3		,						lowercase=None		,						**lowercase		,						)	->				Optional[int]:
  super().__init__(**lowercase_		,						pad_token_id=lowercase_		,						bos_token_id=lowercase_		,						eos_token_id=lowercase_      )
  __UpperCamelCase					   =	hidden_size
  __UpperCamelCase					   =	feat_extract_norm
  __UpperCamelCase					   =	feat_extract_activation
  __UpperCamelCase					   =	list(lowercase_      )
  __UpperCamelCase					   =	list(lowercase_      )
  __UpperCamelCase					   =	list(lowercase_      )
  __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(lowercase_      )
  __UpperCamelCase					   =	list(lowercase_      )
  __UpperCamelCase					   =	list(lowercase_      )
  __UpperCamelCase					   =	xvector_output_dim




 @property
 def  __lowerCamelCase					(	self      )	->				Any:
  return functools.reduce(operator.mul		,						self.conv_stride		,						1      )






'''simple docstring'''


from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available


__snake_case						  =		{
    """configuration_git""": ["""GIT_PRETRAINED_CONFIG_ARCHIVE_MAP""", """GitConfig""", """GitVisionConfig"""],
    """processing_git""": ["""GitProcessor"""],
}

try:
       if not is_torch_available():
              raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
       pass
else:
       __snake_case						  =		[
           """GIT_PRETRAINED_MODEL_ARCHIVE_LIST""",
           """GitForCausalLM""",
           """GitModel""",
           """GitPreTrainedModel""",
           """GitVisionModel""",
       ]

if TYPE_CHECKING:
       from .configuration_git import GIT_PRETRAINED_CONFIG_ARCHIVE_MAP, GitConfig, GitVisionConfig
       from .processing_git import GitProcessor

       try:
              if not is_torch_available():
                     raise OptionalDependencyNotAvailable()
       except OptionalDependencyNotAvailable:
              pass
       else:
              from .modeling_git import (
                  GIT_PRETRAINED_MODEL_ARCHIVE_LIST,
                  GitForCausalLM,
                  GitModel,
                  GitPreTrainedModel,
                  GitVisionModel,
              )

else:
       import sys

       __snake_case						  =		_LazyModule(__name__, globals()["""__file__"""], _import_structure, module_spec=__spec__)

