



'''simple docstring'''



from collections import OrderedDict
from typing import TYPE_CHECKING, Any, Mapping, Optional, Union

from ...configuration_utils import PretrainedConfig
from ...onnx import OnnxConfig, OnnxSeqaSeqConfigWithPast
from ...utils import logging


if TYPE_CHECKING:
							from ...feature_extraction_utils import FeatureExtractionMixin
							from ...tokenization_utils_base import PreTrainedTokenizerBase
							from ...utils import TensorType

lowerCAmelCase	:		Optional[Any]				=   logging.get_logger(__name__)

lowerCAmelCase	:		Tuple				=   {
    """openai/whisper-base""": """https://huggingface.co/openai/whisper-base/resolve/main/config.json""",
}

# fmt: off
lowerCAmelCase	:		Optional[Any]				=   [
    1, 2, 7, 8, 9, 1_0, 1_4, 2_5,
    2_6, 2_7, 2_8, 2_9, 3_1, 5_8, 5_9, 6_0, 6_1, 6_2,
    6_3, 9_0, 9_1, 9_2, 9_3, 3_5_7, 3_6_6, 4_3_8, 5_3_2, 6_8_5,
    7_0_5, 7_9_6, 9_3_0, 1_0_5_8, 1_2_2_0, 1_2_6_7, 1_2_7_9, 1_3_0_3, 1_3_4_3, 1_3_7_7,
    1_3_9_1, 1_6_3_5, 1_7_8_2, 1_8_7_5, 2_1_6_2, 2_3_6_1, 2_4_8_8, 3_4_6_7, 4_0_0_8, 4_2_1_1,
    4_6_0_0, 4_8_0_8, 5_2_9_9, 5_8_5_5, 6_3_2_9, 7_2_0_3, 9_6_0_9, 9_9_5_9, 1_0_5_6_3, 1_0_7_8_6,
    1_1_4_2_0, 1_1_7_0_9, 1_1_9_0_7, 1_3_1_6_3, 1_3_6_9_7, 1_3_7_0_0, 1_4_8_0_8, 1_5_3_0_6, 1_6_4_1_0, 1_6_7_9_1,
    1_7_9_9_2, 1_9_2_0_3, 1_9_5_1_0, 2_0_7_2_4, 2_2_3_0_5, 2_2_9_3_5, 2_7_0_0_7, 3_0_1_0_9, 3_0_4_2_0, 3_3_4_0_9,
    3_4_9_4_9, 4_0_2_8_3, 4_0_4_9_3, 4_0_5_4_9, 4_7_2_8_2, 4_9_1_4_6, 5_0_2_5_7, 5_0_3_5_9, 5_0_3_6_0, 5_0_3_6_1
]
lowerCAmelCase	:		int				=   [
    1, 2, 7, 8, 9, 1_0, 1_4, 2_5,
    2_6, 2_7, 2_8, 2_9, 3_1, 5_8, 5_9, 6_0, 6_1, 6_2,
    6_3, 9_0, 9_1, 9_2, 9_3, 3_5_9, 5_0_3, 5_2_2, 5_4_2, 8_7_3,
    8_9_3, 9_0_2, 9_1_8, 9_2_2, 9_3_1, 1_3_5_0, 1_8_5_3, 1_9_8_2, 2_4_6_0, 2_6_2_7,
    3_2_4_6, 3_2_5_3, 3_2_6_8, 3_5_3_6, 3_8_4_6, 3_9_6_1, 4_1_8_3, 4_6_6_7, 6_5_8_5, 6_6_4_7,
    7_2_7_3, 9_0_6_1, 9_3_8_3, 1_0_4_2_8, 1_0_9_2_9, 1_1_9_3_8, 1_2_0_3_3, 1_2_3_3_1, 1_2_5_6_2, 1_3_7_9_3,
    1_4_1_5_7, 1_4_6_3_5, 1_5_2_6_5, 1_5_6_1_8, 1_6_5_5_3, 1_6_6_0_4, 1_8_3_6_2, 1_8_9_5_6, 2_0_0_7_5, 2_1_6_7_5,
    2_2_5_2_0, 2_6_1_3_0, 2_6_1_6_1, 2_6_4_3_5, 2_8_2_7_9, 2_9_4_6_4, 3_1_6_5_0, 3_2_3_0_2, 3_2_4_7_0, 3_6_8_6_5,
    4_2_8_6_3, 4_7_4_2_5, 4_9_8_7_0, 5_0_2_5_4, 5_0_2_5_8, 5_0_3_6_0, 5_0_3_6_1, 5_0_3_6_2
]






class 					UpperCAmelCase__	(		snake_case_ ):
					a      :     Union[str, Any]        =							"""whisper"""
					a      :     int        =							["""past_key_values"""]
					a      :     Optional[Any]        =							{"""num_attention_heads""": """encoder_attention_heads""", """hidden_size""": """d_model"""}



					def __init__(    self			,				UpperCamelCase=5_1865			,				UpperCamelCase=80			,				UpperCamelCase=6			,				UpperCamelCase=4			,				UpperCamelCase=6			,				UpperCamelCase=4			,				UpperCamelCase=1536			,				UpperCamelCase=1536			,				UpperCamelCase=0.0			,				UpperCamelCase=0.0			,				UpperCamelCase=5_0257			,				UpperCamelCase=True			,				UpperCamelCase=True			,				UpperCamelCase="gelu"			,				UpperCamelCase=256			,				UpperCamelCase=0.0			,				UpperCamelCase=0.0			,				UpperCamelCase=0.0			,				UpperCamelCase=0.02			,				UpperCamelCase=False			,				UpperCamelCase=1500			,				UpperCamelCase=448			,				UpperCamelCase=5_0256			,				UpperCamelCase=5_0256			,				UpperCamelCase=5_0256			,				UpperCamelCase=None			,				UpperCamelCase=[220, 5_0256]			,				UpperCamelCase=False			,				UpperCamelCase=256			,				UpperCamelCase=False			,				UpperCamelCase=0.05			,				UpperCamelCase=10			,				UpperCamelCase=2			,				UpperCamelCase=0.0			,				UpperCamelCase=10			,				UpperCamelCase=0			,				UpperCamelCase=7			,				**UpperCamelCase			,				)     ->			int:
						__lowerCAmelCase												=  vocab_size
						__lowerCAmelCase												=  num_mel_bins
						__lowerCAmelCase												=  d_model
						__lowerCAmelCase												=  encoder_layers
						__lowerCAmelCase												=  encoder_attention_heads
						__lowerCAmelCase												=  decoder_layers
						__lowerCAmelCase												=  decoder_attention_heads
						__lowerCAmelCase												=  decoder_ffn_dim
						__lowerCAmelCase												=  encoder_ffn_dim
						__lowerCAmelCase												=  dropout
						__lowerCAmelCase												=  attention_dropout
						__lowerCAmelCase												=  activation_dropout
						__lowerCAmelCase												=  activation_function
						__lowerCAmelCase												=  init_std
						__lowerCAmelCase												=  encoder_layerdrop
						__lowerCAmelCase												=  decoder_layerdrop
						__lowerCAmelCase												=  use_cache
						__lowerCAmelCase												=  encoder_layers
						__lowerCAmelCase												=  scale_embedding  # scale factor will be sqrt(d_model) if True
						__lowerCAmelCase												=  max_source_positions
						__lowerCAmelCase												=  max_target_positions

						# Audio Classification-specific parameters. Feel free to ignore for other classes.
						__lowerCAmelCase												=  classifier_proj_size
						__lowerCAmelCase												=  use_weighted_layer_sum

						# fine-tuning config parameters for SpecAugment: https://arxiv.org/abs/1904.08779
						__lowerCAmelCase												=  apply_spec_augment
						__lowerCAmelCase												=  mask_time_prob
						__lowerCAmelCase												=  mask_time_length
						__lowerCAmelCase												=  mask_time_min_masks
						__lowerCAmelCase												=  mask_feature_prob
						__lowerCAmelCase												=  mask_feature_length
						__lowerCAmelCase												=  mask_feature_min_masks

						__lowerCAmelCase												=  median_filter_width

						super().__init__(
						    pad_token_id=UpperCamelCase			,				bos_token_id=UpperCamelCase			,				eos_token_id=UpperCamelCase			,				is_encoder_decoder=UpperCamelCase			,				decoder_start_token_id=UpperCamelCase			,				suppress_tokens=UpperCamelCase			,				begin_suppress_tokens=UpperCamelCase			,				**UpperCamelCase			,				)






class 					UpperCAmelCase__	(		snake_case_ ):



					@property
					def        UpperCAmelCase_ (    self     )     ->			Tuple:
						__lowerCAmelCase												=  OrderedDict(
						    [
						        ("input_features", {0: "batch", 1: "feature_size", 2: "encoder_sequence"}),
						    ]     )
						if self.use_past:
							__lowerCAmelCase												=  {0: "batch"}
						else:
							__lowerCAmelCase												=  {0: "batch", 1: "decoder_sequence"}

						if self.use_past:
							self.fill_with_past_key_values_(UpperCamelCase			,				direction="inputs"     )

						return common_inputs



					def        UpperCAmelCase_ (    self			,				UpperCamelCase			,				UpperCamelCase = -1			,				UpperCamelCase = -1			,				UpperCamelCase = False			,				UpperCamelCase = None			,				UpperCamelCase = 2_2050			,				UpperCamelCase = 5.0			,				UpperCamelCase = 220			,				)     ->			List[Any]:
						__lowerCAmelCase												=  OrderedDict()
						__lowerCAmelCase												=  OnnxConfig.generate_dummy_inputs(
						    self			,				preprocessor=preprocessor.feature_extractor			,				batch_size=UpperCamelCase			,				framework=UpperCamelCase			,				sampling_rate=UpperCamelCase			,				time_duration=UpperCamelCase			,				frequency=UpperCamelCase			,				)
						__lowerCAmelCase												=  encoder_inputs["input_features"].shape[2]
						__lowerCAmelCase												=  encoder_sequence_length // 2 if self.use_past else seq_length

						__lowerCAmelCase												=  super().generate_dummy_inputs(
						    preprocessor.tokenizer			,				UpperCamelCase			,				UpperCamelCase			,				UpperCamelCase			,				UpperCamelCase     )

						__lowerCAmelCase												=  encoder_inputs.pop("input_features"     )
						__lowerCAmelCase												=  decoder_inputs.pop("decoder_input_ids"     )

						if "past_key_values" in decoder_inputs:
							__lowerCAmelCase												=  decoder_inputs.pop("past_key_values"     )

						return dummy_inputs



					@property
					def        UpperCAmelCase_ (    self     )     ->			List[str]:
						return 1E-3




'''simple docstring'''



from typing import TYPE_CHECKING

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


lowerCAmelCase	:		Union[str, Any]				=   {
    '''configuration_distilbert''': [
        '''DISTILBERT_PRETRAINED_CONFIG_ARCHIVE_MAP''',
        '''DistilBertConfig''',
        '''DistilBertOnnxConfig''',
    ],
    '''tokenization_distilbert''': ['''DistilBertTokenizer'''],
}

try:
	if not is_tokenizers_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	lowerCAmelCase	:		Tuple				=   ['''DistilBertTokenizerFast''']

try:
	if not is_torch_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	lowerCAmelCase	:		Tuple				=   [
	    '''DISTILBERT_PRETRAINED_MODEL_ARCHIVE_LIST''',
	    '''DistilBertForMaskedLM''',
	    '''DistilBertForMultipleChoice''',
	    '''DistilBertForQuestionAnswering''',
	    '''DistilBertForSequenceClassification''',
	    '''DistilBertForTokenClassification''',
	    '''DistilBertModel''',
	    '''DistilBertPreTrainedModel''',
	]

try:
	if not is_tf_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	lowerCAmelCase	:		List[str]				=   [
	    '''TF_DISTILBERT_PRETRAINED_MODEL_ARCHIVE_LIST''',
	    '''TFDistilBertForMaskedLM''',
	    '''TFDistilBertForMultipleChoice''',
	    '''TFDistilBertForQuestionAnswering''',
	    '''TFDistilBertForSequenceClassification''',
	    '''TFDistilBertForTokenClassification''',
	    '''TFDistilBertMainLayer''',
	    '''TFDistilBertModel''',
	    '''TFDistilBertPreTrainedModel''',
	]

try:
	if not is_flax_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	lowerCAmelCase	:		Optional[int]				=   [
	    '''FlaxDistilBertForMaskedLM''',
	    '''FlaxDistilBertForMultipleChoice''',
	    '''FlaxDistilBertForQuestionAnswering''',
	    '''FlaxDistilBertForSequenceClassification''',
	    '''FlaxDistilBertForTokenClassification''',
	    '''FlaxDistilBertModel''',
	    '''FlaxDistilBertPreTrainedModel''',
	]


if TYPE_CHECKING:
	from .configuration_distilbert import (
	    DISTILBERT_PRETRAINED_CONFIG_ARCHIVE_MAP,
	    DistilBertConfig,
	    DistilBertOnnxConfig,
	)
	from .tokenization_distilbert import DistilBertTokenizer

	try:
		if not is_tokenizers_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .tokenization_distilbert_fast import DistilBertTokenizerFast

	try:
		if not is_torch_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_distilbert import (
		    DISTILBERT_PRETRAINED_MODEL_ARCHIVE_LIST,
		    DistilBertForMaskedLM,
		    DistilBertForMultipleChoice,
		    DistilBertForQuestionAnswering,
		    DistilBertForSequenceClassification,
		    DistilBertForTokenClassification,
		    DistilBertModel,
		    DistilBertPreTrainedModel,
		)

	try:
		if not is_tf_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_tf_distilbert import (
		    TF_DISTILBERT_PRETRAINED_MODEL_ARCHIVE_LIST,
		    TFDistilBertForMaskedLM,
		    TFDistilBertForMultipleChoice,
		    TFDistilBertForQuestionAnswering,
		    TFDistilBertForSequenceClassification,
		    TFDistilBertForTokenClassification,
		    TFDistilBertMainLayer,
		    TFDistilBertModel,
		    TFDistilBertPreTrainedModel,
		)

	try:
		if not is_flax_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_flax_distilbert import (
		    FlaxDistilBertForMaskedLM,
		    FlaxDistilBertForMultipleChoice,
		    FlaxDistilBertForQuestionAnswering,
		    FlaxDistilBertForSequenceClassification,
		    FlaxDistilBertForTokenClassification,
		    FlaxDistilBertModel,
		    FlaxDistilBertPreTrainedModel,
		)

else:
	import sys

	lowerCAmelCase	:		List[str]				=   _LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)