





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


__lowercase	: List[Any]       =logging.get_logger(__name__)

__lowercase	: Optional[int]       ={"""openai-gpt""": """https://huggingface.co/openai-gpt/resolve/main/config.json"""}

class   A							(						__lowercase    ):
      _snake_case				  ='''openai-gpt'''
      _snake_case				  ={
          '''max_position_embeddings''': '''n_positions''',
          '''hidden_size''': '''n_embd''',
          '''num_attention_heads''': '''n_head''',
          '''num_hidden_layers''': '''n_layer''',
      }



      def __init__(						self:    List[str]		,	_lowerCAmelCase:    List[str]=4_0478		,	_lowerCAmelCase:    Any=512		,	_lowerCAmelCase:    Optional[Any]=768		,	_lowerCAmelCase:    str=12		,	_lowerCAmelCase:    str=12		,	_lowerCAmelCase:    Any="gelu"		,	_lowerCAmelCase:    str=0.1		,	_lowerCAmelCase:    Optional[int]=0.1		,	_lowerCAmelCase:    str=0.1		,	_lowerCAmelCase:    Optional[Any]=1e-5		,	_lowerCAmelCase:    Optional[int]=0.02		,	_lowerCAmelCase:    Dict="cls_index"		,	_lowerCAmelCase:    List[Any]=True		,	_lowerCAmelCase:    List[Any]=None		,	_lowerCAmelCase:    Tuple=True		,	_lowerCAmelCase:    List[str]=0.1		,	**_lowerCAmelCase:    int		,	)    ->     Dict:
         '''simple docstring'''

         UpperCAmelCase_           =vocab_size
         UpperCAmelCase_           =n_positions
         UpperCAmelCase_           =n_embd
         UpperCAmelCase_           =n_layer
         UpperCAmelCase_           =n_head
         UpperCAmelCase_           =afn
         UpperCAmelCase_           =resid_pdrop
         UpperCAmelCase_           =embd_pdrop
         UpperCAmelCase_           =attn_pdrop
         UpperCAmelCase_           =layer_norm_epsilon
         UpperCAmelCase_           =initializer_range
         UpperCAmelCase_           =summary_type
         UpperCAmelCase_           =summary_use_proj
         UpperCAmelCase_           =summary_activation
         UpperCAmelCase_           =summary_first_dropout
         UpperCAmelCase_           =summary_proj_to_labels
         super().__init__(**_lowerCAmelCase							)












"""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 			lowerCAmelCase__			(    unittest.TestCase   ):
   @slow
   def       __a							(		self      :	Tuple							):


        '''simple docstring'''
        UpperCAmelCase__						:    List[str]							=							XLMRobertaModel.from_pretrained("xlm-roberta-base"							)
        UpperCAmelCase__						:    str							=							torch.tensor([[0, 5_8_1, 1_0_2_6_9, 8_3, 9_9_9_4_2, 1_3_6, 6_0_7_4_2, 2_3, 7_0, 8_0_5_8_3, 1_8_2_7_6, 2]]							)
        # The dog is cute and lives in the garden house

        UpperCAmelCase__						:    Tuple							=							torch.Size((1, 1_2, 7_6_8)							)  # batch_size, sequence_length, embedding_vector_dim
        UpperCAmelCase__						:    Optional[int]							=							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__						:    int							=							model(snake_case__							)["last_hidden_state"].detach()
        self.assertEqual(output.shape							,			snake_case__							)
        # compare the actual values for a slice of last dim
        self.assertTrue(torch.allclose(output[:, :, -1]							,			snake_case__							,			atol=1e-3							)							)




   @slow
   def       __a							(		self      :	Optional[Any]							):


        '''simple docstring'''
        UpperCAmelCase__						:    Any							=							XLMRobertaModel.from_pretrained("xlm-roberta-large"							)
        UpperCAmelCase__						:    Tuple							=							torch.tensor([[0, 5_8_1, 1_0_2_6_9, 8_3, 9_9_9_4_2, 1_3_6, 6_0_7_4_2, 2_3, 7_0, 8_0_5_8_3, 1_8_2_7_6, 2]]							)
        # The dog is cute and lives in the garden house

        UpperCAmelCase__						:    Union[str, Any]							=							torch.Size((1, 1_2, 1_0_2_4)							)  # batch_size, sequence_length, embedding_vector_dim
        UpperCAmelCase__						:    Optional[Any]							=							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__						:    Optional[Any]							=							model(snake_case__							)["last_hidden_state"].detach()
        self.assertEqual(output.shape							,			snake_case__							)
        # compare the actual values for a slice of last dim
        self.assertTrue(torch.allclose(output[:, :, -1]							,			snake_case__							,			atol=1e-3							)							)


