
import functools
import operator

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


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

lowercase__							:							str									=			{
    "microsoft/unispeech-large-1500h-cv": (
        "https://huggingface.co/microsoft/unispeech-large-1500h-cv/resolve/main/config.json"
    ),
    # See all UniSpeech models at https://huggingface.co/models?filter=unispeech
}






class        SCREAMING_SNAKE_CASE__    (							SCREAMING_SNAKE_CASE_    ):

							"""simple docstring"""






							_snake_case     		=  'unispeech'



							def __init__(  self     ,	SCREAMING_SNAKE_CASE_=32     ,	SCREAMING_SNAKE_CASE_=768     ,	SCREAMING_SNAKE_CASE_=12     ,	SCREAMING_SNAKE_CASE_=12     ,	SCREAMING_SNAKE_CASE_=3072     ,	SCREAMING_SNAKE_CASE_="gelu"     ,	SCREAMING_SNAKE_CASE_=0.1     ,	SCREAMING_SNAKE_CASE_=0.1     ,	SCREAMING_SNAKE_CASE_=0.1     ,	SCREAMING_SNAKE_CASE_=0.0     ,	SCREAMING_SNAKE_CASE_=0.0     ,	SCREAMING_SNAKE_CASE_=0.1     ,	SCREAMING_SNAKE_CASE_=0.1     ,	SCREAMING_SNAKE_CASE_=0.0_2     ,	SCREAMING_SNAKE_CASE_=1E-5     ,	SCREAMING_SNAKE_CASE_="group"     ,	SCREAMING_SNAKE_CASE_="gelu"     ,	SCREAMING_SNAKE_CASE_=(512, 512, 512, 512, 512, 512, 512)     ,	SCREAMING_SNAKE_CASE_=(5, 2, 2, 2, 2, 2, 2)     ,	SCREAMING_SNAKE_CASE_=(10, 3, 3, 3, 3, 2, 2)     ,	SCREAMING_SNAKE_CASE_=False     ,	SCREAMING_SNAKE_CASE_=128     ,	SCREAMING_SNAKE_CASE_=16     ,	SCREAMING_SNAKE_CASE_=False     ,	SCREAMING_SNAKE_CASE_=True     ,	SCREAMING_SNAKE_CASE_=0.0_5     ,	SCREAMING_SNAKE_CASE_=10     ,	SCREAMING_SNAKE_CASE_=2     ,	SCREAMING_SNAKE_CASE_=0.0     ,	SCREAMING_SNAKE_CASE_=10     ,	SCREAMING_SNAKE_CASE_=0     ,	SCREAMING_SNAKE_CASE_=320     ,	SCREAMING_SNAKE_CASE_=2     ,	SCREAMING_SNAKE_CASE_=0.1     ,	SCREAMING_SNAKE_CASE_=100     ,	SCREAMING_SNAKE_CASE_=256     ,	SCREAMING_SNAKE_CASE_=256     ,	SCREAMING_SNAKE_CASE_=0.1     ,	SCREAMING_SNAKE_CASE_="mean"     ,	SCREAMING_SNAKE_CASE_=False     ,	SCREAMING_SNAKE_CASE_=False     ,	SCREAMING_SNAKE_CASE_=256     ,	SCREAMING_SNAKE_CASE_=80     ,	SCREAMING_SNAKE_CASE_=0     ,	SCREAMING_SNAKE_CASE_=1     ,	SCREAMING_SNAKE_CASE_=2     ,	SCREAMING_SNAKE_CASE_=0.5     ,	**SCREAMING_SNAKE_CASE_     ,	)->   List[str]:





													'''simple docstring'''






													super().__init__(**SCREAMING_SNAKE_CASE_     ,	pad_token_id=SCREAMING_SNAKE_CASE_     ,	bos_token_id=SCREAMING_SNAKE_CASE_     ,	eos_token_id=SCREAMING_SNAKE_CASE_			)
													__UpperCamelCase       =			hidden_size
													__UpperCamelCase       =			feat_extract_norm
													__UpperCamelCase       =			feat_extract_activation
													__UpperCamelCase       =			list(SCREAMING_SNAKE_CASE_			)
													__UpperCamelCase       =			list(SCREAMING_SNAKE_CASE_			)
													__UpperCamelCase       =			list(SCREAMING_SNAKE_CASE_			)
													__UpperCamelCase       =			conv_bias
													__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
													__UpperCamelCase       =			mask_feature_min_masks

													# parameters for pretraining with codevector quantized representations
													__UpperCamelCase       =			num_codevectors_per_group
													__UpperCamelCase       =			num_codevector_groups
													__UpperCamelCase       =			contrastive_logits_temperature
													__UpperCamelCase       =			feat_quantizer_dropout
													__UpperCamelCase       =			num_negatives
													__UpperCamelCase       =			codevector_dim
													__UpperCamelCase       =			proj_codevector_dim
													__UpperCamelCase       =			diversity_loss_weight

													# ctc loss
													__UpperCamelCase       =			ctc_loss_reduction
													__UpperCamelCase       =			ctc_zero_infinity

													# pretraining loss
													__UpperCamelCase       =			replace_prob



							@property
							def     A__		(  self			)->   List[Any]:





													'''simple docstring'''






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






from collections import OrderedDict
from typing import Mapping

from packaging import version

from ...configuration_utils import PretrainedConfig
from ...onnx import OnnxConfig
from ...utils import logging
from ..auto import CONFIG_MAPPING


lowercase__							:							Tuple									=			logging.get_logger(__name__)

lowercase__							:							int									=			{
    "microsoft/table-transformer-detection": (
        "https://huggingface.co/microsoft/table-transformer-detection/resolve/main/config.json"
    ),
}






class        SCREAMING_SNAKE_CASE__    (							SCREAMING_SNAKE_CASE_    ):

							"""simple docstring"""






							_snake_case     		=  'table-transformer'
							_snake_case     		=  ['past_key_values']
							_snake_case     		=  {
							    'hidden_size': 'd_model',
							    'num_attention_heads': 'encoder_attention_heads',
							}



							def __init__(  self     ,	SCREAMING_SNAKE_CASE_=True     ,	SCREAMING_SNAKE_CASE_=None     ,	SCREAMING_SNAKE_CASE_=3     ,	SCREAMING_SNAKE_CASE_=100     ,	SCREAMING_SNAKE_CASE_=6     ,	SCREAMING_SNAKE_CASE_=2048     ,	SCREAMING_SNAKE_CASE_=8     ,	SCREAMING_SNAKE_CASE_=6     ,	SCREAMING_SNAKE_CASE_=2048     ,	SCREAMING_SNAKE_CASE_=8     ,	SCREAMING_SNAKE_CASE_=0.0     ,	SCREAMING_SNAKE_CASE_=0.0     ,	SCREAMING_SNAKE_CASE_=True     ,	SCREAMING_SNAKE_CASE_="relu"     ,	SCREAMING_SNAKE_CASE_=256     ,	SCREAMING_SNAKE_CASE_=0.1     ,	SCREAMING_SNAKE_CASE_=0.0     ,	SCREAMING_SNAKE_CASE_=0.0     ,	SCREAMING_SNAKE_CASE_=0.0_2     ,	SCREAMING_SNAKE_CASE_=1.0     ,	SCREAMING_SNAKE_CASE_=False     ,	SCREAMING_SNAKE_CASE_="sine"     ,	SCREAMING_SNAKE_CASE_="resnet50"     ,	SCREAMING_SNAKE_CASE_=True     ,	SCREAMING_SNAKE_CASE_=False     ,	SCREAMING_SNAKE_CASE_=1     ,	SCREAMING_SNAKE_CASE_=5     ,	SCREAMING_SNAKE_CASE_=2     ,	SCREAMING_SNAKE_CASE_=1     ,	SCREAMING_SNAKE_CASE_=1     ,	SCREAMING_SNAKE_CASE_=5     ,	SCREAMING_SNAKE_CASE_=2     ,	SCREAMING_SNAKE_CASE_=0.1     ,	**SCREAMING_SNAKE_CASE_     ,	)->   Tuple:





													'''simple docstring'''






													if backbone_config is not None and use_timm_backbone:
																			raise ValueError('''You can\'t specify both `backbone_config` and `use_timm_backbone`.'''			)

													if not use_timm_backbone:
																			if backbone_config is None:
																									logger.info('''`backbone_config` is `None`. Initializing the config with the default `ResNet` backbone.'''			)
																									__UpperCamelCase       =			CONFIG_MAPPING['''resnet'''](out_features=['''stage4''']			)
																			elif isinstance(SCREAMING_SNAKE_CASE_     ,	SCREAMING_SNAKE_CASE_			):
																									__UpperCamelCase       =			backbone_config.get('''model_type'''			)
																									__UpperCamelCase       =			CONFIG_MAPPING[backbone_model_type]
																									__UpperCamelCase       =			config_class.from_dict(SCREAMING_SNAKE_CASE_			)
																			# set timm attributes to None
																			__UpperCamelCase  ,							__UpperCamelCase  ,							__UpperCamelCase       =			None, None, None

													__UpperCamelCase       =			use_timm_backbone
													__UpperCamelCase       =			backbone_config
													__UpperCamelCase       =			num_channels
													__UpperCamelCase       =			num_queries
													__UpperCamelCase       =			d_model
													__UpperCamelCase       =			encoder_ffn_dim
													__UpperCamelCase       =			encoder_layers
													__UpperCamelCase       =			encoder_attention_heads
													__UpperCamelCase       =			decoder_ffn_dim
													__UpperCamelCase       =			decoder_layers
													__UpperCamelCase       =			decoder_attention_heads
													__UpperCamelCase       =			dropout
													__UpperCamelCase       =			attention_dropout
													__UpperCamelCase       =			activation_dropout
													__UpperCamelCase       =			activation_function
													__UpperCamelCase       =			init_std
													__UpperCamelCase       =			init_xavier_std
													__UpperCamelCase       =			encoder_layerdrop
													__UpperCamelCase       =			decoder_layerdrop
													__UpperCamelCase       =			encoder_layers
													__UpperCamelCase       =			auxiliary_loss
													__UpperCamelCase       =			position_embedding_type
													__UpperCamelCase       =			backbone
													__UpperCamelCase       =			use_pretrained_backbone
													__UpperCamelCase       =			dilation
													# Hungarian matcher
													__UpperCamelCase       =			class_cost
													__UpperCamelCase       =			bbox_cost
													__UpperCamelCase       =			giou_cost
													# Loss coefficients
													__UpperCamelCase       =			mask_loss_coefficient
													__UpperCamelCase       =			dice_loss_coefficient
													__UpperCamelCase       =			bbox_loss_coefficient
													__UpperCamelCase       =			giou_loss_coefficient
													__UpperCamelCase       =			eos_coefficient
													super().__init__(is_encoder_decoder=SCREAMING_SNAKE_CASE_     ,	**SCREAMING_SNAKE_CASE_			)



							@property
							def     A__		(  self			)->   int:





													'''simple docstring'''






													return self.encoder_attention_heads



							@property
							def     A__		(  self			)->   int:





													'''simple docstring'''






													return self.d_model






class        SCREAMING_SNAKE_CASE__    (							SCREAMING_SNAKE_CASE_    ):

							"""simple docstring"""






							_snake_case     		=  version.parse('1.11'    )



							@property
							def     A__		(  self			)->   Mapping[str, Mapping[int, str]]:





													'''simple docstring'''






													return OrderedDict(
													    [
													        ('''pixel_values''', {0: '''batch''', 1: '''num_channels''', 2: '''height''', 3: '''width'''}),
													        ('''pixel_mask''', {0: '''batch'''}),
													    ]			)



							@property
							def     A__		(  self			)->   float:





													'''simple docstring'''






													return 1E-5



							@property
							def     A__		(  self			)->   int:





													'''simple docstring'''






													return 12




