


'''simple docstring'''



import unittest

from transformers import is_torch_available, is_vision_available
from transformers.testing_utils import require_torch, require_vision, slow, torch_device


if is_torch_available():
	import torch

	from transformers import AutoModelForImageClassification

if is_vision_available():
	from transformers import AutoImageProcessor





@require_torch
@require_vision
class 				__UpperCamelCase							(						unittest.TestCase   ):




	@slow
	def  __UpperCAmelCase				(  self				):

						'''simple docstring'''





						__a     :			Tuple          =    AutoImageProcessor.from_pretrained('microsoft/dit-base-finetuned-rvlcdip'				)
						__a     :			Union[str, Any]          =    AutoModelForImageClassification.from_pretrained('microsoft/dit-base-finetuned-rvlcdip'				)
						model.to(_SCREAMING_SNAKE_CASE				)

						from datasets import load_dataset

						__a     :			Optional[int]          =    load_dataset('nielsr/rvlcdip-demo'				)

						__a     :			Optional[Any]          =    dataset['''train'''][0]['''image'''].convert('RGB'				)

						__a     :			str          =    image_processor(_SCREAMING_SNAKE_CASE		,							return_tensors='pt'				).to(_SCREAMING_SNAKE_CASE				)

						# forward pass
						with torch.no_grad():
											__a     :			Optional[int]          =    model(**_SCREAMING_SNAKE_CASE				)
											__a     :			List[Any]          =    outputs.logits

						__a     :			Tuple          =    torch.Size((1, 16)				)
						self.assertEqual(logits.shape		,							_SCREAMING_SNAKE_CASE				)

						__a     :			int          =    torch.tensor(
						    [-0.4158, -0.4092, -0.4347]		,							device=_SCREAMING_SNAKE_CASE		,							dtype=torch.float		,							)
						self.assertTrue(torch.allclose(logits[0, :3]		,							_SCREAMING_SNAKE_CASE		,							atol=1E-4				)				)









import unittest

from transformers import is_torch_available, is_vision_available
from transformers.testing_utils import require_torch, require_vision, slow, torch_device


if is_torch_available():
     import torch

     from transformers import AutoModelForImageClassification

if is_vision_available():
     from transformers import AutoImageProcessor

@require_torch
@require_vision
class     __a(	unittest.TestCase  ):






    """simple docstring"""





    @slow
    def 				a__ ( self    )					->						List[str]:
         UpperCAmelCase_     :				Tuple  =     AutoImageProcessor.from_pretrained('''microsoft/dit-base-finetuned-rvlcdip'''    )
         UpperCAmelCase_     :				Union[str, Any]  =     AutoModelForImageClassification.from_pretrained('''microsoft/dit-base-finetuned-rvlcdip'''    )
         model.to(_SCREAMING_SNAKE_CASE    )

         from datasets import load_dataset

         UpperCAmelCase_     :				Optional[int]  =     load_dataset('''nielsr/rvlcdip-demo'''    )

         UpperCAmelCase_     :				Optional[Any]  =     dataset['''train'''][0]['''image'''].convert('''RGB'''    )

         UpperCAmelCase_     :				str  =     image_processor(_SCREAMING_SNAKE_CASE  ,return_tensors='''pt'''    ).to(_SCREAMING_SNAKE_CASE    )

         # forward pass
         with torch.no_grad():
              UpperCAmelCase_     :				Optional[int]  =     model(**_SCREAMING_SNAKE_CASE    )
              UpperCAmelCase_     :				List[Any]  =     outputs.logits

         UpperCAmelCase_     :				Tuple  =     torch.Size((1, 16)    )
         self.assertEqual(logits.shape  ,_SCREAMING_SNAKE_CASE    )

         UpperCAmelCase_     :				int  =     torch.tensor(
             [-0.41_58, -0.40_92, -0.43_47]  ,device=_SCREAMING_SNAKE_CASE  ,dtype=torch.float  ,)
         self.assertTrue(torch.allclose(logits[0, :3]  ,_SCREAMING_SNAKE_CASE  ,atol=1e-4    )    )