


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__   (	__magic_name__   ):
					__SCREAMING_SNAKE_CASE       :  Optional[int]						=   'deta'
					__SCREAMING_SNAKE_CASE       :  str						=   {
					    'hidden_size': 'd_model',
					    'num_attention_heads': 'encoder_attention_heads',
					}

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






										'''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       :   int       ):






										'''simple docstring'''






										return self.encoder_attention_heads

					@property
					def   UpperCAmelCase__       (     self       :   str       ):






										'''simple docstring'''






										return self.d_model







					def   UpperCAmelCase__       (     self       :   Union[str, Any]       ):






										'''simple docstring'''






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






def 			UpperCAmelCase_				(      UpperCAmelCase__  ):
					if not isinstance(UpperCAmelCase__						,							UpperCAmelCase__  ):
										raise TypeError("""Input value must be an 'int' type"""  )

					lowercase_  							=			0
					while number:
										position += 1
										number >>= 1

					return position


if __name__ == "__main__":
							import doctest

							doctest.testmod()


