


import copy

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


a       	=  logging.get_logger(__name__)

a       	=  {
    'ut/deta': 'https://huggingface.co/ut/deta/resolve/main/config.json',
}







class 							UpperCamelCase__ (						lowercase_ ):
					__SCREAMING_SNAKE_CASE							:	Any            = """deta"""
					__SCREAMING_SNAKE_CASE							:	int            = {
					    """hidden_size""": """d_model""",
					    """num_attention_heads""": """encoder_attention_heads""",
					}

					def __init__(  self							: Any				,       UpperCamelCase__							: str=None				,       UpperCamelCase__							: Dict=900				,       UpperCamelCase__							: Optional[int]=2_048				,       UpperCamelCase__							: Tuple=6				,       UpperCamelCase__							: Optional[int]=2_048				,       UpperCamelCase__							: Optional[int]=8				,       UpperCamelCase__							: Any=6				,       UpperCamelCase__							: Tuple=1_024				,       UpperCamelCase__							: Dict=8				,       UpperCamelCase__							: List[Any]=0.0				,       UpperCamelCase__							: Any=True				,       UpperCamelCase__							: List[Any]="relu"				,       UpperCamelCase__							: Optional[Any]=256				,       UpperCamelCase__							: Tuple=0.1				,       UpperCamelCase__							: Optional[int]=0.0				,       UpperCamelCase__							: List[Any]=0.0				,       UpperCamelCase__							: Any=0.02				,       UpperCamelCase__							: Tuple=1.0				,       UpperCamelCase__							: Optional[int]=True				,       UpperCamelCase__							: Any=False				,       UpperCamelCase__							: str="sine"				,       UpperCamelCase__							: List[str]=5				,       UpperCamelCase__							: Tuple=4				,       UpperCamelCase__							: Any=4				,       UpperCamelCase__							: List[Any]=True				,       UpperCamelCase__							: str=300				,       UpperCamelCase__							: Optional[Any]=True				,       UpperCamelCase__							: Optional[Any]=True				,       UpperCamelCase__							: Dict=1				,       UpperCamelCase__							: int=5				,       UpperCamelCase__							: List[str]=2				,       UpperCamelCase__							: Union[str, Any]=1				,       UpperCamelCase__							: Optional[Any]=1				,       UpperCamelCase__							: Optional[Any]=5				,       UpperCamelCase__							: str=2				,       UpperCamelCase__							: Any=0.1				,       UpperCamelCase__							: Union[str, Any]=0.25				,       **UpperCamelCase__							: Optional[Any]				,       ):






										'''simple docstring'''






										if backbone_config is None:
															logger.info("""`backbone_config` is `None`. Initializing the config with the default `ResNet` backbone."""							)
															lowercase_					=      CONFIG_MAPPING["""resnet"""](out_features=["""stage2""", """stage3""", """stage4"""]							)
										else:
															if isinstance(UpperCamelCase__				,       UpperCamelCase__							):
																				lowercase_					=      backbone_config.pop("""model_type"""							)
																				lowercase_					=      CONFIG_MAPPING[backbone_model_type]
																				lowercase_					=      config_class.from_dict(UpperCamelCase__							)

										lowercase_					=      backbone_config
										lowercase_					=      num_queries
										lowercase_					=      max_position_embeddings
										lowercase_					=      d_model
										lowercase_					=      encoder_ffn_dim
										lowercase_					=      encoder_layers
										lowercase_					=      encoder_attention_heads
										lowercase_					=      decoder_ffn_dim
										lowercase_					=      decoder_layers
										lowercase_					=      decoder_attention_heads
										lowercase_					=      dropout
										lowercase_					=      attention_dropout
										lowercase_					=      activation_dropout
										lowercase_					=      activation_function
										lowercase_					=      init_std
										lowercase_					=      init_xavier_std
										lowercase_					=      encoder_layerdrop
										lowercase_					=      auxiliary_loss
										lowercase_					=      position_embedding_type
										# deformable attributes
										lowercase_					=      num_feature_levels
										lowercase_					=      encoder_n_points
										lowercase_					=      decoder_n_points
										lowercase_					=      two_stage
										lowercase_					=      two_stage_num_proposals
										lowercase_					=      with_box_refine
										lowercase_					=      assign_first_stage
										if two_stage is True and with_box_refine is False:
															raise ValueError("""If two_stage is True, with_box_refine must be True."""							)
										# Hungarian matcher
										lowercase_					=      class_cost
										lowercase_					=      bbox_cost
										lowercase_					=      giou_cost
										# Loss coefficients
										lowercase_					=      mask_loss_coefficient
										lowercase_					=      dice_loss_coefficient
										lowercase_					=      bbox_loss_coefficient
										lowercase_					=      giou_loss_coefficient
										lowercase_					=      eos_coefficient
										lowercase_					=      focal_alpha
										super().__init__(is_encoder_decoder=UpperCamelCase__				,       **UpperCamelCase__							)

					@property
					def 	UpperCAmelCase__							(  self							: str							):






										'''simple docstring'''






										return self.encoder_attention_heads

					@property
					def 	UpperCAmelCase__							(  self							: List[Any]							):






										'''simple docstring'''






										return self.d_model







					def 	UpperCAmelCase__							(  self							: List[Any]							):






										'''simple docstring'''






										lowercase_					=      copy.deepcopy(self.__dict__							)
										lowercase_					=      self.backbone_config.to_dict()
										lowercase_					=      self.__class__.model_type
										return output






'''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				:  Tuple    		=      {
    '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				:  str    		=      ['DistilBertTokenizerFast']

try:
 if not is_torch_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 lowerCamelCase				:  List[str]    		=      [
     '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				:  Union[str, Any]    		=      [
     '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				:  str    		=      [
     '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				:  int    		=      _LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)




