
'''simple docstring'''
from ...configuration_utils import PretrainedConfig
from ...utils import is_detectrona_available, logging


__lowerCAmelCase  							=					logging.get_logger(__name__)

__lowerCAmelCase  							=					{
    'layoutlmv2-base-uncased': 'https://huggingface.co/microsoft/layoutlmv2-base-uncased/resolve/main/config.json',
    'layoutlmv2-large-uncased': 'https://huggingface.co/microsoft/layoutlmv2-large-uncased/resolve/main/config.json',
    # See all LayoutLMv2 models at https://huggingface.co/models?filter=layoutlmv2
}

# soft dependency
if is_detectrona_available():
				import detectrona


class     _lowerCAmelCase					(					lowercase_   ):







							'''simple docstring'''

							lowerCAmelCase_      		=		"""layoutlmv2"""

							def __init__(self						,						UpperCAmelCase=30522						,						UpperCAmelCase=768						,						UpperCAmelCase=12						,						UpperCAmelCase=12						,						UpperCAmelCase=3072						,						UpperCAmelCase="gelu"						,						UpperCAmelCase=0.1						,						UpperCAmelCase=0.1						,						UpperCAmelCase=512						,						UpperCAmelCase=2						,						UpperCAmelCase=0.02						,						UpperCAmelCase=1e-1_2						,						UpperCAmelCase=0						,						UpperCAmelCase=1024						,						UpperCAmelCase=128						,						UpperCAmelCase=32						,						UpperCAmelCase=True						,						UpperCAmelCase=256						,						UpperCAmelCase=64						,						UpperCAmelCase=True						,						UpperCAmelCase=[7, 7, 256]						,						UpperCAmelCase=128						,						UpperCAmelCase=128						,						UpperCAmelCase=True						,						UpperCAmelCase=True						,						UpperCAmelCase=False						,						UpperCAmelCase=None						,						**UpperCAmelCase						,						)  ->     Tuple:
														super().__init__(
														    vocab_size=UpperCAmelCase						,						hidden_size=UpperCAmelCase						,						num_hidden_layers=UpperCAmelCase						,						num_attention_heads=UpperCAmelCase						,						intermediate_size=UpperCAmelCase						,						hidden_act=UpperCAmelCase						,						hidden_dropout_prob=UpperCAmelCase						,						attention_probs_dropout_prob=UpperCAmelCase						,						max_position_embeddings=UpperCAmelCase						,						type_vocab_size=UpperCAmelCase						,						initializer_range=UpperCAmelCase						,						layer_norm_eps=UpperCAmelCase						,						pad_token_id=UpperCAmelCase						,						**UpperCAmelCase						,						)
														_snake_case     =						max_ad_position_embeddings
														_snake_case     =						max_rel_pos
														_snake_case     =						rel_pos_bins
														_snake_case     =						fast_qkv
														_snake_case     =						max_rel_ad_pos
														_snake_case     =						rel_ad_pos_bins
														_snake_case     =						convert_sync_batchnorm
														_snake_case     =						image_feature_pool_shape
														_snake_case     =						coordinate_size
														_snake_case     =						shape_size
														_snake_case     =						has_relative_attention_bias
														_snake_case     =						has_spatial_attention_bias
														_snake_case     =						has_visual_segment_embedding
														_snake_case     =						(
														    detectrona_config_args if detectrona_config_args is not None else self.get_default_detectrona_config()
														)

							@classmethod
							def  lowercase							(self						)  ->     Any:
														return {
														    "MODEL.MASK_ON": True,
														    "MODEL.PIXEL_STD": [57.375, 57.120, 58.395],
														    "MODEL.BACKBONE.NAME": "build_resnet_fpn_backbone",
														    "MODEL.FPN.IN_FEATURES": ["res2", "res3", "res4", "res5"],
														    "MODEL.ANCHOR_GENERATOR.SIZES": [[32], [64], [128], [256], [512]],
														    "MODEL.RPN.IN_FEATURES": ["p2", "p3", "p4", "p5", "p6"],
														    "MODEL.RPN.PRE_NMS_TOPK_TRAIN": 2000,
														    "MODEL.RPN.PRE_NMS_TOPK_TEST": 1000,
														    "MODEL.RPN.POST_NMS_TOPK_TRAIN": 1000,
														    "MODEL.POST_NMS_TOPK_TEST": 1000,
														    "MODEL.ROI_HEADS.NAME": "StandardROIHeads",
														    "MODEL.ROI_HEADS.NUM_CLASSES": 5,
														    "MODEL.ROI_HEADS.IN_FEATURES": ["p2", "p3", "p4", "p5"],
														    "MODEL.ROI_BOX_HEAD.NAME": "FastRCNNConvFCHead",
														    "MODEL.ROI_BOX_HEAD.NUM_FC": 2,
														    "MODEL.ROI_BOX_HEAD.POOLER_RESOLUTION": 14,
														    "MODEL.ROI_MASK_HEAD.NAME": "MaskRCNNConvUpsampleHead",
														    "MODEL.ROI_MASK_HEAD.NUM_CONV": 4,
														    "MODEL.ROI_MASK_HEAD.POOLER_RESOLUTION": 7,
														    "MODEL.RESNETS.DEPTH": 101,
														    "MODEL.RESNETS.SIZES": [[32], [64], [128], [256], [512]],
														    "MODEL.RESNETS.ASPECT_RATIOS": [[0.5, 1.0, 2.0]],
														    "MODEL.RESNETS.OUT_FEATURES": ["res2", "res3", "res4", "res5"],
														    "MODEL.RESNETS.NUM_GROUPS": 32,
														    "MODEL.RESNETS.WIDTH_PER_GROUP": 8,
														    "MODEL.RESNETS.STRIDE_IN_1X1": False,
														}





							def  lowercase							(self						)  ->     Dict:
														_snake_case     =						detectrona.config.get_cfg()
														for k, v in self.detectrona_config_args.items():
																					_snake_case     =						k.split("""."""						)
																					_snake_case     =						detectrona_config
																					for attribute in attributes[:-1]:
																												_snake_case     =						getattr(UpperCAmelCase						,						UpperCAmelCase						)
																					setattr(UpperCAmelCase						,						attributes[-1]						,						UpperCAmelCase						)

														return detectrona_config

'''simple docstring'''
from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available, is_vision_available


__lowerCAmelCase  							= {
    'configuration_deta': ['DETA_PRETRAINED_CONFIG_ARCHIVE_MAP', 'DetaConfig'],
}

try:
				if not is_vision_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				__lowerCAmelCase  							= ['DetaImageProcessor']

try:
				if not is_torch_available():
								raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
				pass
else:
				__lowerCAmelCase  							= [
				    'DETA_PRETRAINED_MODEL_ARCHIVE_LIST',
				    'DetaForObjectDetection',
				    'DetaModel',
				    'DetaPreTrainedModel',
				]


if TYPE_CHECKING:
				from .configuration_deta import DETA_PRETRAINED_CONFIG_ARCHIVE_MAP, DetaConfig

				try:
								if not is_vision_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .image_processing_deta import DetaImageProcessor

				try:
								if not is_torch_available():
												raise OptionalDependencyNotAvailable()
				except OptionalDependencyNotAvailable:
								pass
				else:
								from .modeling_deta import (
								    DETA_PRETRAINED_MODEL_ARCHIVE_LIST,
								    DetaForObjectDetection,
								    DetaModel,
								    DetaPreTrainedModel,
								)

else:
				import sys

				__lowerCAmelCase  							= _LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)