

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    a__  (   snake_case     ):
			"""simple docstring"""







			__lowerCamelCase	    =    'layoutlmv2'


			def __init__(      self , lowercase=30522 , lowercase=768 , lowercase=12 , lowercase=12 , lowercase=3072 , lowercase="gelu" , lowercase=0.1 , lowercase=0.1 , lowercase=512 , lowercase=2 , lowercase=0.02 , lowercase=1e-12 , lowercase=0 , lowercase=1024 , lowercase=128 , lowercase=32 , lowercase=True , lowercase=256 , lowercase=64 , lowercase=True , lowercase=[7, 7, 256] , lowercase=128 , lowercase=128 , lowercase=True , lowercase=True , lowercase=False , lowercase=None , **lowercase , )					->  List[str]:
							'''simple docstring'''






							super().__init__(
							    vocab_size=lowercase , hidden_size=lowercase , num_hidden_layers=lowercase , num_attention_heads=lowercase , intermediate_size=lowercase , hidden_act=lowercase , hidden_dropout_prob=lowercase , attention_probs_dropout_prob=lowercase , max_position_embeddings=lowercase , type_vocab_size=lowercase , initializer_range=lowercase , layer_norm_eps=lowercase , pad_token_id=lowercase , **lowercase , )
							A__            =     max_ad_position_embeddings
							A__            =     max_rel_pos
							A__            =     rel_pos_bins
							A__            =     fast_qkv
							A__            =     max_rel_ad_pos
							A__            =     rel_ad_pos_bins
							A__            =     convert_sync_batchnorm
							A__            =     image_feature_pool_shape
							A__            =     coordinate_size
							A__            =     shape_size
							A__            =     has_relative_attention_bias
							A__            =     has_spatial_attention_bias
							A__            =     has_visual_segment_embedding
							A__            =     (
							    detectrona_config_args if detectrona_config_args is not None else self.get_default_detectrona_config()
							)


			@classmethod
			def        UpperCamelCase						(      self    )					->  Union[str, Any]:
							'''simple docstring'''






							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        UpperCamelCase						(      self    )					->  Optional[int]:
							'''simple docstring'''






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

							return detectrona_config




from typing import TYPE_CHECKING

from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available


lowerCAmelCase__						=	{"""configuration_nat""": ["""NAT_PRETRAINED_CONFIG_ARCHIVE_MAP""", """NatConfig"""]}


try:
	if not is_torch_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	lowerCAmelCase__						=	[
	    """NAT_PRETRAINED_MODEL_ARCHIVE_LIST""",
	    """NatForImageClassification""",
	    """NatModel""",
	    """NatPreTrainedModel""",
	    """NatBackbone""",
	]

if TYPE_CHECKING:
	from .configuration_nat import NAT_PRETRAINED_CONFIG_ARCHIVE_MAP, NatConfig

	try:
		if not is_torch_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_nat import (
		    NAT_PRETRAINED_MODEL_ARCHIVE_LIST,
		    NatBackbone,
		    NatForImageClassification,
		    NatModel,
		    NatPreTrainedModel,
		)

else:
	import sys

	lowerCAmelCase__						=	_LazyModule(__name__, globals()["""__file__"""], _import_structure, module_spec=__spec__)

