



"""simple docstring"""






import functools
import operator

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


lowerCamelCase				:     Union[str, Any]								=  logging.get_logger(__name__)

lowerCamelCase				:     List[str]								=  {
    """facebook/hubert-base-ls960""": """https://huggingface.co/facebook/hubert-base-ls960/resolve/main/config.json""",
    # See all Hubert models at https://huggingface.co/models?filter=hubert
}




class    __snake_case(					__A       ):
    _A       = '''hubert'''




    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_=True    ,							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_=False    ,							A_=True    ,							A_=0.05    ,							A_=10    ,							A_=2    ,							A_=0.0    ,							A_=10    ,							A_=0    ,							A_="sum"    ,							A_=False    ,							A_=False    ,							A_=256    ,							A_=0    ,							A_=1    ,							A_=2    ,							**A_    ,							):





      '''simple docstring'''



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

      # ctc loss
      _SCREAMING_SNAKE_CASE        =			ctc_loss_reduction
      _SCREAMING_SNAKE_CASE        =			ctc_zero_infinity




    @property
    def   A   (   self			):





      '''simple docstring'''



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





"""simple docstring"""






from transformers import ProcessorMixin




class    __snake_case(					__A       ):
    _A       = '''AutoFeatureExtractor'''
    _A       = '''AutoTokenizer'''
