

"""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 					a						(       unittest.TestCase				):



				"""simple docstring"""



				@slow
				def 				UpperCamelCase	(     self: List[Any]       ):






									"""simple docstring"""


									A__										=  AutoImageProcessor.from_pretrained("""microsoft/dit-base-finetuned-rvlcdip"""       )
									A__										=  AutoModelForImageClassification.from_pretrained("""microsoft/dit-base-finetuned-rvlcdip"""       )
									model.to(A_       )

									from datasets import load_dataset

									A__										=  load_dataset("""nielsr/rvlcdip-demo"""       )

									A__										=  dataset["""train"""][0]["""image"""].convert("""RGB"""       )

									A__										=  image_processor(A_    ,						return_tensors="""pt"""       ).to(A_       )

									# forward pass
									with torch.no_grad():
														A__										=  model(**A_       )
														A__										=  outputs.logits

									A__										=  torch.Size((1, 16)       )
									self.assertEqual(logits.shape    ,						A_       )

									A__										=  torch.tensor(
									    [-0.4_158, -0.4_092, -0.4_347]    ,						device=A_    ,						dtype=torch.float    ,						)
									self.assertTrue(torch.allclose(logits[0, :3]    ,						A_    ,						atol=1e-4       )       )









"""simple docstring"""



# Copyright 2023 The HuggingFace Team. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from typing import TYPE_CHECKING

# rely on isort to merge the imports
from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_tokenizers_available, is_torch_available


SCREAMING_SNAKE_CASE_					:	List[str]							  =						{'configuration_mra': ['MRA_PRETRAINED_CONFIG_ARCHIVE_MAP', 'MraConfig']}

try:
 if not is_torch_available():
  raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
 pass
else:
 SCREAMING_SNAKE_CASE_					:	List[Any]							  =						[
     'MRA_PRETRAINED_MODEL_ARCHIVE_LIST',
     'MraForMaskedLM',
     'MraForMultipleChoice',
     'MraForQuestionAnswering',
     'MraForSequenceClassification',
     'MraForTokenClassification',
     'MraLayer',
     'MraModel',
     'MraPreTrainedModel',
 ]


if TYPE_CHECKING:
 from .configuration_mra import MRA_PRETRAINED_CONFIG_ARCHIVE_MAP, MraConfig

 try:
  if not is_torch_available():
   raise OptionalDependencyNotAvailable()
 except OptionalDependencyNotAvailable:
  pass
 else:
  from .modeling_mra import (
      MRA_PRETRAINED_MODEL_ARCHIVE_LIST,
      MraForMaskedLM,
      MraForMultipleChoice,
      MraForQuestionAnswering,
      MraForSequenceClassification,
      MraForTokenClassification,
      MraLayer,
      MraModel,
      MraPreTrainedModel,
  )
else:
 import sys

 SCREAMING_SNAKE_CASE_					:	List[str]							  =						_LazyModule(__name__, globals()['__file__'], _import_structure)






