



"""simple docstring"""





from ...configuration_utils import PretrainedConfig
from ...utils import logging


lowerCamelCase       	=						logging.get_logger(__name__)

lowerCamelCase       	=						{
    """microsoft/markuplm-base""": """https://huggingface.co/microsoft/markuplm-base/resolve/main/config.json""",
    """microsoft/markuplm-large""": """https://huggingface.co/microsoft/markuplm-large/resolve/main/config.json""",
}
class 				lowercase__       (   SCREAMING_SNAKE_CASE				):







       '''simple docstring'''


       UpperCamelCase						=					'''markuplm'''



       def __init__(							self      :  Optional[Any]		,    _UpperCAmelCase      :  List[Any]=30522		,    _UpperCAmelCase      :  Tuple=768		,    _UpperCAmelCase      :  List[Any]=12		,    _UpperCAmelCase      :  Dict=12		,    _UpperCAmelCase      :  Union[str, Any]=3072		,    _UpperCAmelCase      :  Tuple="gelu"		,    _UpperCAmelCase      :  List[Any]=0.1		,    _UpperCAmelCase      :  List[str]=0.1		,    _UpperCAmelCase      :  Any=512		,    _UpperCAmelCase      :  str=2		,    _UpperCAmelCase      :  Optional[int]=0.02		,    _UpperCAmelCase      :  int=1e-12		,    _UpperCAmelCase      :  Union[str, Any]=0		,    _UpperCAmelCase      :  List[Any]=0		,    _UpperCAmelCase      :  Optional[Any]=2		,    _UpperCAmelCase      :  str=256		,    _UpperCAmelCase      :  List[str]=1024		,    _UpperCAmelCase      :  Optional[int]=216		,    _UpperCAmelCase      :  Union[str, Any]=1001		,    _UpperCAmelCase      :  Dict=32		,    _UpperCAmelCase      :  Any=50		,    _UpperCAmelCase      :  List[Any]="absolute"		,    _UpperCAmelCase      :  Optional[Any]=True		,    _UpperCAmelCase      :  Tuple=None		,    **_UpperCAmelCase      :  Dict		,    )			->						Optional[int]:


             '''simple docstring'''




             super().__init__(
                 pad_token_id=_UpperCAmelCase		,    bos_token_id=_UpperCAmelCase		,    eos_token_id=_UpperCAmelCase		,    **_UpperCAmelCase		,    )
             UpperCAmelCase_      			=							vocab_size
             UpperCAmelCase_      			=							hidden_size
             UpperCAmelCase_      			=							num_hidden_layers
             UpperCAmelCase_      			=							num_attention_heads
             UpperCAmelCase_      			=							hidden_act
             UpperCAmelCase_      			=							intermediate_size
             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_      			=							position_embedding_type
             UpperCAmelCase_      			=							use_cache
             UpperCAmelCase_      			=							classifier_dropout
             # additional properties
             UpperCAmelCase_      			=							max_depth
             UpperCAmelCase_      			=							max_xpath_tag_unit_embeddings
             UpperCAmelCase_      			=							max_xpath_subs_unit_embeddings
             UpperCAmelCase_      			=							tag_pad_id
             UpperCAmelCase_      			=							subs_pad_id
             UpperCAmelCase_      			=							xpath_unit_hidden_size









"""simple docstring"""





import unittest

from transformers import is_torch_available
from transformers.testing_utils import require_sentencepiece, require_tokenizers, require_torch, slow


if is_torch_available():
  import torch

  from transformers import XLMRobertaModel
@require_sentencepiece
@require_tokenizers
@require_torch
class 				lowercase__       (   unittest.TestCase				):







       '''simple docstring'''


       @slow
       def 					lowercase__    (							self      :  Tuple   )			->						str:


             '''simple docstring'''




             UpperCAmelCase_      			=							XLMRobertaModel.from_pretrained("xlm-roberta-base"   )
             UpperCAmelCase_      			=							torch.tensor([[0, 581, 10269, 83, 99942, 136, 60742, 23, 70, 80583, 18276, 2]]   )
             # The dog is cute and lives in the garden house

             UpperCAmelCase_      			=							torch.Size((1, 12, 768)   )  # batch_size, sequence_length, embedding_vector_dim
             UpperCAmelCase_      			=							torch.tensor(
                 [[-0.0101, 0.1218, -0.0803, 0.0801, 0.1327, 0.0776, -0.1215, 0.2383, 0.3338, 0.3106, 0.0300, 0.0252]]   )
             #  xlmr = torch.hub.load('pytorch/fairseq', 'xlmr.base')
             #  xlmr.eval()
             #  expected_output_values_last_dim = xlmr.extract_features(input_ids[0])[:, :, -1]
             with torch.no_grad():
                   UpperCAmelCase_      			=							model(_UpperCAmelCase   )["last_hidden_state"].detach()
             self.assertEqual(output.shape		,    _UpperCAmelCase   )
             # compare the actual values for a slice of last dim
             self.assertTrue(torch.allclose(output[:, :, -1]		,    _UpperCAmelCase		,    atol=1e-3   )   )







       @slow
       def 					lowercase__    (							self      :  List[Any]   )			->						Optional[int]:


             '''simple docstring'''




             UpperCAmelCase_      			=							XLMRobertaModel.from_pretrained("xlm-roberta-large"   )
             UpperCAmelCase_      			=							torch.tensor([[0, 581, 10269, 83, 99942, 136, 60742, 23, 70, 80583, 18276, 2]]   )
             # The dog is cute and lives in the garden house

             UpperCAmelCase_      			=							torch.Size((1, 12, 1024)   )  # batch_size, sequence_length, embedding_vector_dim
             UpperCAmelCase_      			=							torch.tensor(
                 [[-0.0699, -0.0318, 0.0705, -0.1241, 0.0999, -0.0520, 0.1004, -0.1838, -0.4704, 0.1437, 0.0821, 0.0126]]   )
             #  xlmr = torch.hub.load('pytorch/fairseq', 'xlmr.large')
             #  xlmr.eval()
             #  expected_output_values_last_dim = xlmr.extract_features(input_ids[0])[:, :, -1]
             with torch.no_grad():
                   UpperCAmelCase_      			=							model(_UpperCAmelCase   )["last_hidden_state"].detach()
             self.assertEqual(output.shape		,    _UpperCAmelCase   )
             # compare the actual values for a slice of last dim
             self.assertTrue(torch.allclose(output[:, :, -1]		,    _UpperCAmelCase		,    atol=1e-3   )   )




