"""simple docstring"""







from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_flax_available,
    is_tf_available,
    is_torch_available,
)


_a	:	int=					{
    """auto_factory""": ["""get_values"""],
    """configuration_auto""": ["""ALL_PRETRAINED_CONFIG_ARCHIVE_MAP""", """CONFIG_MAPPING""", """MODEL_NAMES_MAPPING""", """AutoConfig"""],
    """feature_extraction_auto""": ["""FEATURE_EXTRACTOR_MAPPING""", """AutoFeatureExtractor"""],
    """image_processing_auto""": ["""IMAGE_PROCESSOR_MAPPING""", """AutoImageProcessor"""],
    """processing_auto""": ["""PROCESSOR_MAPPING""", """AutoProcessor"""],
    """tokenization_auto""": ["""TOKENIZER_MAPPING""", """AutoTokenizer"""],
}

try:
	if not is_torch_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	_a	:	Union[str, Any]=					[
	    """MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING""",
	    """MODEL_FOR_AUDIO_FRAME_CLASSIFICATION_MAPPING""",
	    """MODEL_FOR_AUDIO_XVECTOR_MAPPING""",
	    """MODEL_FOR_BACKBONE_MAPPING""",
	    """MODEL_FOR_CAUSAL_IMAGE_MODELING_MAPPING""",
	    """MODEL_FOR_CAUSAL_LM_MAPPING""",
	    """MODEL_FOR_CTC_MAPPING""",
	    """MODEL_FOR_DOCUMENT_QUESTION_ANSWERING_MAPPING""",
	    """MODEL_FOR_DEPTH_ESTIMATION_MAPPING""",
	    """MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING""",
	    """MODEL_FOR_IMAGE_SEGMENTATION_MAPPING""",
	    """MODEL_FOR_INSTANCE_SEGMENTATION_MAPPING""",
	    """MODEL_FOR_MASKED_IMAGE_MODELING_MAPPING""",
	    """MODEL_FOR_MASKED_LM_MAPPING""",
	    """MODEL_FOR_MASK_GENERATION_MAPPING""",
	    """MODEL_FOR_MULTIPLE_CHOICE_MAPPING""",
	    """MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPING""",
	    """MODEL_FOR_OBJECT_DETECTION_MAPPING""",
	    """MODEL_FOR_PRETRAINING_MAPPING""",
	    """MODEL_FOR_QUESTION_ANSWERING_MAPPING""",
	    """MODEL_FOR_SEMANTIC_SEGMENTATION_MAPPING""",
	    """MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING""",
	    """MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING""",
	    """MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING""",
	    """MODEL_FOR_TABLE_QUESTION_ANSWERING_MAPPING""",
	    """MODEL_FOR_TEXT_ENCODING_MAPPING""",
	    """MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING""",
	    """MODEL_FOR_UNIVERSAL_SEGMENTATION_MAPPING""",
	    """MODEL_FOR_VIDEO_CLASSIFICATION_MAPPING""",
	    """MODEL_FOR_VISION_2_SEQ_MAPPING""",
	    """MODEL_FOR_VISUAL_QUESTION_ANSWERING_MAPPING""",
	    """MODEL_MAPPING""",
	    """MODEL_WITH_LM_HEAD_MAPPING""",
	    """MODEL_FOR_ZERO_SHOT_IMAGE_CLASSIFICATION_MAPPING""",
	    """MODEL_FOR_ZERO_SHOT_OBJECT_DETECTION_MAPPING""",
	    """AutoModel""",
	    """AutoBackbone""",
	    """AutoModelForAudioClassification""",
	    """AutoModelForAudioFrameClassification""",
	    """AutoModelForAudioXVector""",
	    """AutoModelForCausalLM""",
	    """AutoModelForCTC""",
	    """AutoModelForDepthEstimation""",
	    """AutoModelForImageClassification""",
	    """AutoModelForImageSegmentation""",
	    """AutoModelForInstanceSegmentation""",
	    """AutoModelForMaskGeneration""",
	    """AutoModelForTextEncoding""",
	    """AutoModelForMaskedImageModeling""",
	    """AutoModelForMaskedLM""",
	    """AutoModelForMultipleChoice""",
	    """AutoModelForNextSentencePrediction""",
	    """AutoModelForObjectDetection""",
	    """AutoModelForPreTraining""",
	    """AutoModelForQuestionAnswering""",
	    """AutoModelForSemanticSegmentation""",
	    """AutoModelForSeq2SeqLM""",
	    """AutoModelForSequenceClassification""",
	    """AutoModelForSpeechSeq2Seq""",
	    """AutoModelForTableQuestionAnswering""",
	    """AutoModelForTokenClassification""",
	    """AutoModelForUniversalSegmentation""",
	    """AutoModelForVideoClassification""",
	    """AutoModelForVision2Seq""",
	    """AutoModelForVisualQuestionAnswering""",
	    """AutoModelForDocumentQuestionAnswering""",
	    """AutoModelWithLMHead""",
	    """AutoModelForZeroShotImageClassification""",
	    """AutoModelForZeroShotObjectDetection""",
	]

try:
	if not is_tf_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	_a	:	Tuple=					[
	    """TF_MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING""",
	    """TF_MODEL_FOR_CAUSAL_LM_MAPPING""",
	    """TF_MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING""",
	    """TF_MODEL_FOR_MASK_GENERATION_MAPPING""",
	    """TF_MODEL_FOR_MASKED_IMAGE_MODELING_MAPPING""",
	    """TF_MODEL_FOR_MASKED_LM_MAPPING""",
	    """TF_MODEL_FOR_MULTIPLE_CHOICE_MAPPING""",
	    """TF_MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPING""",
	    """TF_MODEL_FOR_PRETRAINING_MAPPING""",
	    """TF_MODEL_FOR_QUESTION_ANSWERING_MAPPING""",
	    """TF_MODEL_FOR_DOCUMENT_QUESTION_ANSWERING_MAPPING""",
	    """TF_MODEL_FOR_SEMANTIC_SEGMENTATION_MAPPING""",
	    """TF_MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING""",
	    """TF_MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING""",
	    """TF_MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING""",
	    """TF_MODEL_FOR_TABLE_QUESTION_ANSWERING_MAPPING""",
	    """TF_MODEL_FOR_TEXT_ENCODING_MAPPING""",
	    """TF_MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING""",
	    """TF_MODEL_FOR_VISION_2_SEQ_MAPPING""",
	    """TF_MODEL_FOR_ZERO_SHOT_IMAGE_CLASSIFICATION_MAPPING""",
	    """TF_MODEL_MAPPING""",
	    """TF_MODEL_WITH_LM_HEAD_MAPPING""",
	    """TFAutoModel""",
	    """TFAutoModelForAudioClassification""",
	    """TFAutoModelForCausalLM""",
	    """TFAutoModelForImageClassification""",
	    """TFAutoModelForMaskedImageModeling""",
	    """TFAutoModelForMaskedLM""",
	    """TFAutoModelForMaskGeneration""",
	    """TFAutoModelForMultipleChoice""",
	    """TFAutoModelForNextSentencePrediction""",
	    """TFAutoModelForPreTraining""",
	    """TFAutoModelForDocumentQuestionAnswering""",
	    """TFAutoModelForQuestionAnswering""",
	    """TFAutoModelForSemanticSegmentation""",
	    """TFAutoModelForSeq2SeqLM""",
	    """TFAutoModelForSequenceClassification""",
	    """TFAutoModelForSpeechSeq2Seq""",
	    """TFAutoModelForTableQuestionAnswering""",
	    """TFAutoModelForTextEncoding""",
	    """TFAutoModelForTokenClassification""",
	    """TFAutoModelForVision2Seq""",
	    """TFAutoModelForZeroShotImageClassification""",
	    """TFAutoModelWithLMHead""",
	]

try:
	if not is_flax_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	_a	:	str=					[
	    """FLAX_MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING""",
	    """FLAX_MODEL_FOR_CAUSAL_LM_MAPPING""",
	    """FLAX_MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING""",
	    """FLAX_MODEL_FOR_MASKED_LM_MAPPING""",
	    """FLAX_MODEL_FOR_MULTIPLE_CHOICE_MAPPING""",
	    """FLAX_MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPING""",
	    """FLAX_MODEL_FOR_PRETRAINING_MAPPING""",
	    """FLAX_MODEL_FOR_QUESTION_ANSWERING_MAPPING""",
	    """FLAX_MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING""",
	    """FLAX_MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING""",
	    """FLAX_MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING""",
	    """FLAX_MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING""",
	    """FLAX_MODEL_FOR_VISION_2_SEQ_MAPPING""",
	    """FLAX_MODEL_MAPPING""",
	    """FlaxAutoModel""",
	    """FlaxAutoModelForCausalLM""",
	    """FlaxAutoModelForImageClassification""",
	    """FlaxAutoModelForMaskedLM""",
	    """FlaxAutoModelForMultipleChoice""",
	    """FlaxAutoModelForNextSentencePrediction""",
	    """FlaxAutoModelForPreTraining""",
	    """FlaxAutoModelForQuestionAnswering""",
	    """FlaxAutoModelForSeq2SeqLM""",
	    """FlaxAutoModelForSequenceClassification""",
	    """FlaxAutoModelForSpeechSeq2Seq""",
	    """FlaxAutoModelForTokenClassification""",
	    """FlaxAutoModelForVision2Seq""",
	]


if TYPE_CHECKING:
	from .auto_factory import get_values
	from .configuration_auto import ALL_PRETRAINED_CONFIG_ARCHIVE_MAP, CONFIG_MAPPING, MODEL_NAMES_MAPPING, AutoConfig
	from .feature_extraction_auto import FEATURE_EXTRACTOR_MAPPING, AutoFeatureExtractor
	from .image_processing_auto import IMAGE_PROCESSOR_MAPPING, AutoImageProcessor
	from .processing_auto import PROCESSOR_MAPPING, AutoProcessor
	from .tokenization_auto import TOKENIZER_MAPPING, AutoTokenizer

	try:
		if not is_torch_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_auto import (
		    MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING,
		    MODEL_FOR_AUDIO_FRAME_CLASSIFICATION_MAPPING,
		    MODEL_FOR_AUDIO_XVECTOR_MAPPING,
		    MODEL_FOR_BACKBONE_MAPPING,
		    MODEL_FOR_CAUSAL_IMAGE_MODELING_MAPPING,
		    MODEL_FOR_CAUSAL_LM_MAPPING,
		    MODEL_FOR_CTC_MAPPING,
		    MODEL_FOR_DEPTH_ESTIMATION_MAPPING,
		    MODEL_FOR_DOCUMENT_QUESTION_ANSWERING_MAPPING,
		    MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING,
		    MODEL_FOR_IMAGE_SEGMENTATION_MAPPING,
		    MODEL_FOR_INSTANCE_SEGMENTATION_MAPPING,
		    MODEL_FOR_MASK_GENERATION_MAPPING,
		    MODEL_FOR_MASKED_IMAGE_MODELING_MAPPING,
		    MODEL_FOR_MASKED_LM_MAPPING,
		    MODEL_FOR_MULTIPLE_CHOICE_MAPPING,
		    MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPING,
		    MODEL_FOR_OBJECT_DETECTION_MAPPING,
		    MODEL_FOR_PRETRAINING_MAPPING,
		    MODEL_FOR_QUESTION_ANSWERING_MAPPING,
		    MODEL_FOR_SEMANTIC_SEGMENTATION_MAPPING,
		    MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING,
		    MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING,
		    MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING,
		    MODEL_FOR_TABLE_QUESTION_ANSWERING_MAPPING,
		    MODEL_FOR_TEXT_ENCODING_MAPPING,
		    MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING,
		    MODEL_FOR_UNIVERSAL_SEGMENTATION_MAPPING,
		    MODEL_FOR_VIDEO_CLASSIFICATION_MAPPING,
		    MODEL_FOR_VISION_2_SEQ_MAPPING,
		    MODEL_FOR_VISUAL_QUESTION_ANSWERING_MAPPING,
		    MODEL_FOR_ZERO_SHOT_IMAGE_CLASSIFICATION_MAPPING,
		    MODEL_FOR_ZERO_SHOT_OBJECT_DETECTION_MAPPING,
		    MODEL_MAPPING,
		    MODEL_WITH_LM_HEAD_MAPPING,
		    AutoBackbone,
		    AutoModel,
		    AutoModelForAudioClassification,
		    AutoModelForAudioFrameClassification,
		    AutoModelForAudioXVector,
		    AutoModelForCausalLM,
		    AutoModelForCTC,
		    AutoModelForDepthEstimation,
		    AutoModelForDocumentQuestionAnswering,
		    AutoModelForImageClassification,
		    AutoModelForImageSegmentation,
		    AutoModelForInstanceSegmentation,
		    AutoModelForMaskedImageModeling,
		    AutoModelForMaskedLM,
		    AutoModelForMaskGeneration,
		    AutoModelForMultipleChoice,
		    AutoModelForNextSentencePrediction,
		    AutoModelForObjectDetection,
		    AutoModelForPreTraining,
		    AutoModelForQuestionAnswering,
		    AutoModelForSemanticSegmentation,
		    AutoModelForSeqaSeqLM,
		    AutoModelForSequenceClassification,
		    AutoModelForSpeechSeqaSeq,
		    AutoModelForTableQuestionAnswering,
		    AutoModelForTextEncoding,
		    AutoModelForTokenClassification,
		    AutoModelForUniversalSegmentation,
		    AutoModelForVideoClassification,
		    AutoModelForVisionaSeq,
		    AutoModelForVisualQuestionAnswering,
		    AutoModelForZeroShotImageClassification,
		    AutoModelForZeroShotObjectDetection,
		    AutoModelWithLMHead,
		)

	try:
		if not is_tf_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_tf_auto import (
		    TF_MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING,
		    TF_MODEL_FOR_CAUSAL_LM_MAPPING,
		    TF_MODEL_FOR_DOCUMENT_QUESTION_ANSWERING_MAPPING,
		    TF_MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING,
		    TF_MODEL_FOR_MASK_GENERATION_MAPPING,
		    TF_MODEL_FOR_MASKED_IMAGE_MODELING_MAPPING,
		    TF_MODEL_FOR_MASKED_LM_MAPPING,
		    TF_MODEL_FOR_MULTIPLE_CHOICE_MAPPING,
		    TF_MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPING,
		    TF_MODEL_FOR_PRETRAINING_MAPPING,
		    TF_MODEL_FOR_QUESTION_ANSWERING_MAPPING,
		    TF_MODEL_FOR_SEMANTIC_SEGMENTATION_MAPPING,
		    TF_MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING,
		    TF_MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING,
		    TF_MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING,
		    TF_MODEL_FOR_TABLE_QUESTION_ANSWERING_MAPPING,
		    TF_MODEL_FOR_TEXT_ENCODING_MAPPING,
		    TF_MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING,
		    TF_MODEL_FOR_VISION_2_SEQ_MAPPING,
		    TF_MODEL_FOR_ZERO_SHOT_IMAGE_CLASSIFICATION_MAPPING,
		    TF_MODEL_MAPPING,
		    TF_MODEL_WITH_LM_HEAD_MAPPING,
		    TFAutoModel,
		    TFAutoModelForAudioClassification,
		    TFAutoModelForCausalLM,
		    TFAutoModelForDocumentQuestionAnswering,
		    TFAutoModelForImageClassification,
		    TFAutoModelForMaskedImageModeling,
		    TFAutoModelForMaskedLM,
		    TFAutoModelForMaskGeneration,
		    TFAutoModelForMultipleChoice,
		    TFAutoModelForNextSentencePrediction,
		    TFAutoModelForPreTraining,
		    TFAutoModelForQuestionAnswering,
		    TFAutoModelForSemanticSegmentation,
		    TFAutoModelForSeqaSeqLM,
		    TFAutoModelForSequenceClassification,
		    TFAutoModelForSpeechSeqaSeq,
		    TFAutoModelForTableQuestionAnswering,
		    TFAutoModelForTextEncoding,
		    TFAutoModelForTokenClassification,
		    TFAutoModelForVisionaSeq,
		    TFAutoModelForZeroShotImageClassification,
		    TFAutoModelWithLMHead,
		)

	try:
		if not is_flax_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_flax_auto import (
		    FLAX_MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING,
		    FLAX_MODEL_FOR_CAUSAL_LM_MAPPING,
		    FLAX_MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING,
		    FLAX_MODEL_FOR_MASKED_LM_MAPPING,
		    FLAX_MODEL_FOR_MULTIPLE_CHOICE_MAPPING,
		    FLAX_MODEL_FOR_NEXT_SENTENCE_PREDICTION_MAPPING,
		    FLAX_MODEL_FOR_PRETRAINING_MAPPING,
		    FLAX_MODEL_FOR_QUESTION_ANSWERING_MAPPING,
		    FLAX_MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING,
		    FLAX_MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING,
		    FLAX_MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING,
		    FLAX_MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING,
		    FLAX_MODEL_FOR_VISION_2_SEQ_MAPPING,
		    FLAX_MODEL_MAPPING,
		    FlaxAutoModel,
		    FlaxAutoModelForCausalLM,
		    FlaxAutoModelForImageClassification,
		    FlaxAutoModelForMaskedLM,
		    FlaxAutoModelForMultipleChoice,
		    FlaxAutoModelForNextSentencePrediction,
		    FlaxAutoModelForPreTraining,
		    FlaxAutoModelForQuestionAnswering,
		    FlaxAutoModelForSeqaSeqLM,
		    FlaxAutoModelForSequenceClassification,
		    FlaxAutoModelForSpeechSeqaSeq,
		    FlaxAutoModelForTokenClassification,
		    FlaxAutoModelForVisionaSeq,
		)

else:
	import sys

	_a	:	Optional[Any]=					_LazyModule(__name__, globals()["__file__"], _import_structure, module_spec=__spec__)










'''simple docstring'''




import functools
import operator

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


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

a  :     int       =       {
    """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      UpperCamelCase_					(				__magic_name__     ):
	lowercase		=					'hubert'





	def __init__(    self						,						A=32						,						A=768						,						A=12						,						A=12						,						A=3072						,						A="gelu"						,						A=0.1						,						A=0.1						,						A=0.1						,						A=True						,						A=0.0						,						A=0.1						,						A=0.1						,						A=0.0_2						,						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.0_5						,						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						,						)     ->     List[str]:
								super().__init__(**A						,						pad_token_id=A						,						bos_token_id=A						,						eos_token_id=A       )
								UpperCAmelCase	:						List[Any]					=						hidden_size
								UpperCAmelCase	:						List[Any]					=						feat_extract_norm
								UpperCAmelCase	:						Optional[Any]					=						feat_extract_activation
								UpperCAmelCase	:						Optional[int]					=						list(A       )
								UpperCAmelCase	:						int					=						list(A       )
								UpperCAmelCase	:						Any					=						list(A       )
								UpperCAmelCase	:						Any					=						conv_bias
								UpperCAmelCase	:						Dict					=						num_conv_pos_embeddings
								UpperCAmelCase	:						Tuple					=						num_conv_pos_embedding_groups
								UpperCAmelCase	:						str					=						len(self.conv_dim       )
								UpperCAmelCase	:						Optional[Any]					=						num_hidden_layers
								UpperCAmelCase	:						int					=						intermediate_size
								UpperCAmelCase	:						Any					=						hidden_act
								UpperCAmelCase	:						Tuple					=						num_attention_heads
								UpperCAmelCase	:						int					=						hidden_dropout
								UpperCAmelCase	:						Any					=						attention_dropout
								UpperCAmelCase	:						Any					=						activation_dropout
								UpperCAmelCase	:						str					=						feat_proj_layer_norm
								UpperCAmelCase	:						int					=						feat_proj_dropout
								UpperCAmelCase	:						List[Any]					=						final_dropout
								UpperCAmelCase	:						int					=						layerdrop
								UpperCAmelCase	:						Dict					=						layer_norm_eps
								UpperCAmelCase	:						Union[str, Any]					=						initializer_range
								UpperCAmelCase	:						Any					=						vocab_size
								UpperCAmelCase	:						Optional[int]					=						do_stable_layer_norm
								UpperCAmelCase	:						Optional[int]					=						use_weighted_layer_sum
								UpperCAmelCase	:						Dict					=						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	:						Union[str, Any]					=						apply_spec_augment
								UpperCAmelCase	:						Tuple					=						mask_time_prob
								UpperCAmelCase	:						Optional[Any]					=						mask_time_length
								UpperCAmelCase	:						List[Any]					=						mask_time_min_masks
								UpperCAmelCase	:						Any					=						mask_feature_prob
								UpperCAmelCase	:						Any					=						mask_feature_length
								UpperCAmelCase	:						Tuple					=						mask_feature_min_masks

								# ctc loss
								UpperCAmelCase	:						int					=						ctc_loss_reduction
								UpperCAmelCase	:						Any					=						ctc_zero_infinity






	@property
	def 					_lowercase(    self       )     ->     Union[str, Any]:
								return functools.reduce(operator.mul						,						self.conv_stride						,						1       )

