






import math

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


A_		:		int		     =			logging.get_logger(__name__)

A_		:		str		     =			{
    'facebook/data2vec-base-960h': 'https://huggingface.co/facebook/data2vec-audio-base-960h/resolve/main/config.json',
    # See all Data2VecAudio models at https://huggingface.co/models?filter=data2vec-audio
}




class     _lowerCAmelCase(	UpperCAmelCase_ ):





       """simple docstring"""







       a    :		List[Any]									='''data2vec-audio'''





       def __init__( self  ,      _lowerCamelCase=3_2  ,      _lowerCamelCase=7_6_8  ,      _lowerCamelCase=1_2  ,      _lowerCamelCase=1_2  ,      _lowerCamelCase=3_0_7_2  ,      _lowerCamelCase="gelu"  ,      _lowerCamelCase=0.1  ,      _lowerCamelCase=0.1  ,      _lowerCamelCase=0.1  ,      _lowerCamelCase=0.0  ,      _lowerCamelCase=0.1  ,      _lowerCamelCase=0.1  ,      _lowerCamelCase=0.0_2  ,      _lowerCamelCase=1e-5  ,      _lowerCamelCase="gelu"  ,      _lowerCamelCase=(5_1_2, 5_1_2, 5_1_2, 5_1_2, 5_1_2, 5_1_2, 5_1_2)  ,      _lowerCamelCase=(5, 2, 2, 2, 2, 2, 2)  ,      _lowerCamelCase=(1_0, 3, 3, 3, 3, 2, 2)  ,      _lowerCamelCase=False  ,      _lowerCamelCase=1_6  ,      _lowerCamelCase=1_9  ,      _lowerCamelCase=5  ,      _lowerCamelCase=0.0_5  ,      _lowerCamelCase=1_0  ,      _lowerCamelCase=2  ,      _lowerCamelCase=0.0  ,      _lowerCamelCase=1_0  ,      _lowerCamelCase=0  ,      _lowerCamelCase="sum"  ,      _lowerCamelCase=False  ,      _lowerCamelCase=False  ,      _lowerCamelCase=2_5_6  ,      _lowerCamelCase=(5_1_2, 5_1_2, 5_1_2, 5_1_2, 1_5_0_0)  ,      _lowerCamelCase=(5, 3, 3, 1, 1)  ,      _lowerCamelCase=(1, 2, 3, 1, 1)  ,      _lowerCamelCase=5_1_2  ,      _lowerCamelCase=0  ,      _lowerCamelCase=1  ,      _lowerCamelCase=2  ,      _lowerCamelCase=False  ,      _lowerCamelCase=3  ,      _lowerCamelCase=2  ,      _lowerCamelCase=3  ,      _lowerCamelCase=None  ,      **_lowerCamelCase  ,      ):
         super().__init__(**_lowerCamelCase  ,      pad_token_id=_lowerCamelCase  ,      bos_token_id=_lowerCamelCase  ,      eos_token_id=_lowerCamelCase							)
         UpperCamelCase_: List[str]   				=    hidden_size
         UpperCamelCase_: int   				=    feat_extract_activation
         UpperCamelCase_: Optional[Any]   				=    list(_lowerCamelCase							)
         UpperCamelCase_: int   				=    list(_lowerCamelCase							)
         UpperCamelCase_: Optional[int]   				=    list(_lowerCamelCase							)
         UpperCamelCase_: Union[str, Any]   				=    conv_bias
         UpperCamelCase_: Optional[int]   				=    num_conv_pos_embeddings
         UpperCamelCase_: List[str]   				=    num_conv_pos_embedding_groups
         UpperCamelCase_: List[Any]   				=    conv_pos_kernel_size
         UpperCamelCase_: int   				=    len(self.conv_dim							)
         UpperCamelCase_: Union[str, Any]   				=    num_hidden_layers
         UpperCamelCase_: Tuple   				=    intermediate_size
         UpperCamelCase_: Union[str, Any]   				=    hidden_act
         UpperCamelCase_: Optional[Any]   				=    num_attention_heads
         UpperCamelCase_: Optional[Any]   				=    hidden_dropout
         UpperCamelCase_: Union[str, Any]   				=    attention_dropout
         UpperCamelCase_: Union[str, Any]   				=    activation_dropout
         UpperCamelCase_: Optional[int]   				=    feat_proj_dropout
         UpperCamelCase_: str   				=    final_dropout
         UpperCamelCase_: Any   				=    layerdrop
         UpperCamelCase_: Union[str, Any]   				=    layer_norm_eps
         UpperCamelCase_: str   				=    initializer_range
         UpperCamelCase_: List[Any]   				=    vocab_size
         UpperCamelCase_: str   				=    use_weighted_layer_sum

         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_: int   				=    mask_time_prob
         UpperCamelCase_: Union[str, Any]   				=    mask_time_length
         UpperCamelCase_: Union[str, Any]   				=    mask_time_min_masks
         UpperCamelCase_: str   				=    mask_feature_prob
         UpperCamelCase_: int   				=    mask_feature_length
         UpperCamelCase_: List[Any]   				=    mask_feature_min_masks

         # ctc loss
         UpperCamelCase_: Tuple   				=    ctc_loss_reduction
         UpperCamelCase_: Tuple   				=    ctc_zero_infinity

         # adapter
         UpperCamelCase_: List[str]   				=    add_adapter
         UpperCamelCase_: List[Any]   				=    adapter_kernel_size
         UpperCamelCase_: Optional[int]   				=    adapter_stride
         UpperCamelCase_: Union[str, Any]   				=    num_adapter_layers
         UpperCamelCase_: List[Any]   				=    output_hidden_size or hidden_size

         # SequenceClassification-specific parameter. Feel free to ignore for other classes.
         UpperCamelCase_: List[str]   				=    classifier_proj_size

         # XVector-specific parameters. Feel free to ignore for other classes.
         UpperCamelCase_: List[str]   				=    list(_lowerCamelCase							)
         UpperCamelCase_: Dict   				=    list(_lowerCamelCase							)
         UpperCamelCase_: Dict   				=    list(_lowerCamelCase							)
         UpperCamelCase_: Optional[Any]   				=    xvector_output_dim





       @property
       def       _a   ( self							):
         return math.prod(self.conv_stride							)







import os


# All paths are set with the intent you should run this script from the root of the repo with the command
# python utils/check_doctest_list.py
A_		:		List[str]		     =			'.'


if __name__ == "__main__":
   A_		:		Dict		     =			os.path.join(REPO_PATH, 'utils/documentation_tests.txt')
   A_		:		Dict		     =			[]
   A_		:		Optional[Any]		     =			[]
   with open(doctest_file_path) as fp:
      for line in fp:
         A_		:		Tuple		     =			line.strip()
         A_		:		Any		     =			os.path.join(REPO_PATH, line)
         if not (os.path.isfile(path) or os.path.isdir(path)):
            non_existent_paths.append(line)
         all_paths.append(path)
   if len(non_existent_paths) > 0:
      A_		:		str		     =			'\n'.join(non_existent_paths)
      raise ValueError(F'''`utils/documentation_tests.txt` contains non-existent paths:\n{non_existent_paths}''')
   if all_paths != sorted(all_paths):
      raise ValueError('Files in `utils/documentation_tests.txt` are not in alphabetical order.')