





from ...configuration_utils import PretrainedConfig
from ...utils import is_detectrona_available, logging


_UpperCamelCase    =	logging.get_logger(__name__)

_UpperCamelCase    =	{
    '''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	(      a      ):
      UpperCAmelCase_  : List[Any]				      ="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-12			,  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			,  )    ->				List[str]:






        '''simple docstring'''






        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				:			List[str]            =    max_ad_position_embeddings
        __snake_case				:			Optional[int]            =    max_rel_pos
        __snake_case				:			Optional[Any]            =    rel_pos_bins
        __snake_case				:			Tuple            =    fast_qkv
        __snake_case				:			List[Any]            =    max_rel_ad_pos
        __snake_case				:			List[Any]            =    rel_ad_pos_bins
        __snake_case				:			List[Any]            =    convert_sync_batchnorm
        __snake_case				:			str            =    image_feature_pool_shape
        __snake_case				:			Optional[int]            =    coordinate_size
        __snake_case				:			Any            =    shape_size
        __snake_case				:			List[str]            =    has_relative_attention_bias
        __snake_case				:			Any            =    has_spatial_attention_bias
        __snake_case				:			List[Any]            =    has_visual_segment_embedding
        __snake_case				:			List[Any]            =    (
            detectrona_config_args if detectrona_config_args is not None else self.get_default_detectrona_config()
        )







      @classmethod
      def   UpperCAmelCase						(	self				)    ->				str:






        '''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				)    ->				List[str]:






        '''simple docstring'''






        __snake_case				:			Union[str, Any]            =    detectrona.config.get_cfg()
        for k, v in self.detectrona_config_args.items():
          __snake_case				:			Tuple            =    k.split("."				)
          __snake_case				:			int            =    detectrona_config
          for attribute in attributes[:-1]:
            __snake_case				:			str            =    getattr(UpperCAmelCase			,  UpperCAmelCase				)
          setattr(UpperCAmelCase			,  attributes[-1]			,  UpperCAmelCase				)

        return detectrona_config








import warnings

from ...utils import logging
from .image_processing_maskformer import MaskFormerImageProcessor


_UpperCamelCase    =	logging.get_logger(__name__)




class 			_lowerCamelCase	(      a      ):



      """simple docstring"""






      def __init__(	self			,  *UpperCAmelCase			,  **UpperCAmelCase				)    ->				None:






        '''simple docstring'''






        warnings.warn(
            "The class MaskFormerFeatureExtractor is deprecated and will be removed in version 5 of Transformers."
            " Please use MaskFormerImageProcessor instead."			,  UpperCAmelCase			,  )
        super().__init__(*UpperCAmelCase			,  **UpperCAmelCase				)

