





'''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        _UpperCAmelCase				(		unittest.TestCase  ):
		@slow
		def     lowerCamelCase__     (    self     ):



					'''simple docstring'''

					__lowerCAmelCase   		=							XLMRobertaModel.from_pretrained("""xlm-roberta-base"""     )
					__lowerCAmelCase   		=							torch.tensor([[0, 5_81, 1_02_69, 83, 9_99_42, 1_36, 6_07_42, 23, 70, 8_05_83, 1_82_76, 2]]     )
					# The dog is cute and lives in the garden house

					__lowerCAmelCase   		=							torch.Size((1, 12, 7_68)     )  # batch_size, sequence_length, embedding_vector_dim
					__lowerCAmelCase   		=							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():
								__lowerCAmelCase   		=							model(SCREAMING_SNAKE_CASE_     )["""last_hidden_state"""].detach()
					self.assertEqual(output.shape,SCREAMING_SNAKE_CASE_     )
					# compare the actual values for a slice of last dim
					self.assertTrue(torch.allclose(output[:, :, -1],SCREAMING_SNAKE_CASE_,atol=1e-3     )     )







		@slow
		def     lowerCamelCase__     (    self     ):



					'''simple docstring'''

					__lowerCAmelCase   		=							XLMRobertaModel.from_pretrained("""xlm-roberta-large"""     )
					__lowerCAmelCase   		=							torch.tensor([[0, 5_81, 1_02_69, 83, 9_99_42, 1_36, 6_07_42, 23, 70, 8_05_83, 1_82_76, 2]]     )
					# The dog is cute and lives in the garden house

					__lowerCAmelCase   		=							torch.Size((1, 12, 10_24)     )  # batch_size, sequence_length, embedding_vector_dim
					__lowerCAmelCase   		=							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():
								__lowerCAmelCase   		=							model(SCREAMING_SNAKE_CASE_     )["""last_hidden_state"""].detach()
					self.assertEqual(output.shape,SCREAMING_SNAKE_CASE_     )
					# compare the actual values for a slice of last dim
					self.assertTrue(torch.allclose(output[:, :, -1],SCREAMING_SNAKE_CASE_,atol=1e-3     )     )






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


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







class 				_a				(   _lowerCAmelCase					):
			A      		=	'''timm_backbone'''

			def __init__(self,   SCREAMING_SNAKE_CASE_=None,   SCREAMING_SNAKE_CASE_=3,   SCREAMING_SNAKE_CASE_=True,   SCREAMING_SNAKE_CASE_=True,   SCREAMING_SNAKE_CASE_=None,   **SCREAMING_SNAKE_CASE_,   )       ->   Tuple:
						super().__init__(**SCREAMING_SNAKE_CASE_					)
						UpperCAmelCase_:		Dict							      =     backbone
						UpperCAmelCase_:		Optional[Any]							      =     num_channels
						UpperCAmelCase_:		Optional[Any]							      =     features_only
						UpperCAmelCase_:		Any							      =     use_pretrained_backbone
						UpperCAmelCase_:		List[str]							      =     True
						UpperCAmelCase_:		Union[str, Any]							      =     out_indices if out_indices is not None else (-1,)






