code: 
  
  
  '''simple docstring'''
  
  
  
  import inspect
  import unittest
  
  from transformers import ResNetConfig
  from transformers.testing_utils import require_torch, require_vision, slow, torch_device
  from transformers.utils import cached_property, is_torch_available, is_vision_available
  
  from ...test_backbone_common import BackboneTesterMixin
  from ...test_configuration_common import ConfigTester
  from ...test_modeling_common import ModelTesterMixin, floats_tensor, ids_tensor
  from ...test_pipeline_mixin import PipelineTesterMixin
  
  
  if is_torch_available():
  	import torch
  	from torch import nn
  
  	from transformers import ResNetBackbone, ResNetForImageClassification, ResNetModel
  	from transformers.models.resnet.modeling_resnet import RESNET_PRETRAINED_MODEL_ARCHIVE_LIST
  
  
  if is_vision_available():
  	from PIL import Image
  
  	from transformers import AutoImageProcessor
  
  
  
  
  
  class 							__UpperCamelCase       :
  
  
  
  
  	def __init__(     self		,       __a		,       __a=3		,       __a=32		,       __a=3		,       __a=10		,       __a=[10, 20, 30, 40]		,       __a=[1, 1, 2, 1]		,       __a=True		,       __a=True		,       __a="relu"		,       __a=3		,       __a=None		,       __a=["stage2", "stage3", "stage4"]		,       __a=[2, 3, 4]		,       ):
  
  						'''simple docstring'''
  
  
  
  
  
  						__a    : Optional[int]      					=						parent
  						__a    : Optional[Any]      					=						batch_size
  						__a    : Optional[Any]      					=						image_size
  						__a    : List[Any]      					=						num_channels
  						__a    : Optional[int]      					=						embeddings_size
  						__a    : List[Any]      					=						hidden_sizes
  						__a    : Union[str, Any]      					=						depths
  						__a    : Dict      					=						is_training
  						__a    : Any      					=						use_labels
  						__a    : Union[str, Any]      					=						hidden_act
  						__a    : int      					=						num_labels
  						__a    : Tuple      					=						scope
  						__a    : List[Any]      					=						len(__a							)
  						__a    : Union[str, Any]      					=						out_features
  						__a    : Optional[Any]      					=						out_indices
  
  
  
  
  	def    __UpperCAmelCase							(     self							):
  
  						'''simple docstring'''
  
  
  
  
  
  						__a    : int      					=						floats_tensor([self.batch_size, self.num_channels, self.image_size, self.image_size]							)
  
  						__a    : Dict      					=						None
  						if self.use_labels:
  											__a    : Optional[Any]      					=						ids_tensor([self.batch_size]		,       self.num_labels							)
  
  						__a    : Optional[int]      					=						self.get_config()
  
  						return config, pixel_values, labels
  
  
  
  
  	def    __UpperCAmelCase							(     self							):
  
  						'''simple docstring'''
  
  
  
  
  
  						return ResNetConfig(
  						    num_channels=self.num_channels		,       embeddings_size=self.embeddings_size		,       hidden_sizes=self.hidden_sizes		,       depths=self.depths		,       hidden_act=self.hidden_act		,       num_labels=self.num_labels		,       out_features=self.out_features		,       out_indices=self.out_indices		,       )
  
  
  
  
  	def    __UpperCAmelCase							(     self		,       __a		,       __a		,       __a							):
  
  						'''simple docstring'''
  
  
  
  
  
  						__a    : Any      					=						ResNetModel(config=__a							)
  						model.to(__a							)
  						model.eval()
  						__a    : Tuple      					=						model(__a							)
  						# expected last hidden states: B, C, H // 32, W // 32
  						self.parent.assertEqual(
  						    result.last_hidden_state.shape		,       (self.batch_size, self.hidden_sizes[-1], self.image_size // 32, self.image_size // 32)		,       )
  
  
  
  
  	def    __UpperCAmelCase							(     self		,       __a		,       __a		,       __a							):
  
  						'''simple docstring'''
  
  
  
  
  
  						__a    : Any      					=						self.num_labels
  						__a    : List[str]      					=						ResNetForImageClassification(__a							)
  						model.to(__a							)
  						model.eval()
  						__a    : Any      					=						model(__a		,       labels=__a							)
  						self.parent.assertEqual(result.logits.shape		,       (self.batch_size, self.num_labels)							)
  
  
  
  
  	def    __UpperCAmelCase							(     self		,       __a		,       __a		,       __a							):
  
  						'''simple docstring'''
  
  
  
  
  
  						__a    : Optional[int]      					=						ResNetBackbone(config=__a							)
  						model.to(__a							)
  						model.eval()
  						__a    : Optional[Any]      					=						model(__a							)
  
  						# verify feature maps
  						self.parent.assertEqual(len(result.feature_maps							)		,       len(config.out_features							)							)
  						self.parent.assertListEqual(list(result.feature_maps[0].shape							)		,       [self.batch_size, self.hidden_sizes[1], 4, 4]							)
  
  						# verify channels
  						self.parent.assertEqual(len(model.channels							)		,       len(config.out_features							)							)
  						self.parent.assertListEqual(model.channels		,       config.hidden_sizes[1:]							)
  
  						# verify backbone works with out_features=None
  						__a    : Optional[int]      					=						None
  						__a    : Optional[int]      					=						ResNetBackbone(config=__a							)
  						model.to(__a							)
  						model.eval()
  						__a    : str      					=						model(__a							)
  
  						# verify feature maps
  						self.parent.assertEqual(len(result.feature_maps							)		,       1							)
  						self.parent.assertListEqual(list(result.feature_maps[0].shape							)		,       [self.batch_size, self.hidden_sizes[-1], 1, 1]							)
  
  						# verify channels
  						self.parent.assertEqual(len(model.channels							)		,       1							)
  						self.parent.assertListEqual(model.channels		,       [config.hidden_sizes[-1]]							)
  
  
  
  
  
  	def    __UpperCAmelCase							(     self							):
  
  						'''simple docstring'''
  
  
  
  
  
  						__a    : Union[str, Any]      					=						self.prepare_config_and_inputs()
  						__a					,       __a					,       __a    : int      					=						config_and_inputs
  						__a    : int      					=						{'pixel_values': pixel_values}
  						return config, inputs_dict
  
  
  
  
  
  @require_torch
  class 							__UpperCamelCase       (	UpperCAmelCase_	,   UpperCAmelCase_	,   unittest.TestCase      ):
  	A_					    =					(
  	    (
  	        ResNetModel,
  	        ResNetForImageClassification,
  	        ResNetBackbone,
  	    )
  	    if is_torch_available()
  	    else ()
  	)
  	A_					    =					(
  	    {"feature-extraction": ResNetModel, "image-classification": ResNetForImageClassification}
  	    if is_torch_available()
  	    else {}
  	)
  
  	A_					    =					True
  	A_					    =					False
  	A_					    =					False
  	A_					    =					False
  	A_					    =					False
  
  
  
  
  	def    __UpperCAmelCase							(     self							):
  
  						'''simple docstring'''
  
  
  
  
  
  						__a    : Union[str, Any]      					=						ResNetModelTester(self							)
  						__a    : List[Any]      					=						ConfigTester(self		,       config_class=__a		,       has_text_modality=__a							)
  
  
  
  
  	def    __UpperCAmelCase							(     self							):
  
  						'''simple docstring'''
  
  
  
  
  
  						self.create_and_test_config_common_properties()
  						self.config_tester.create_and_test_config_to_json_string()
  						self.config_tester.create_and_test_config_to_json_file()
  						self.config_tester.create_and_test_config_from_and_save_pretrained()
  						self.config_tester.create_and_test_config_with_num_labels()
  						self.config_tester.check_config_can_be_init_without_params()
  						self.config_tester.check_config_arguments_init()
  
  
  
  
  	def    __UpperCAmelCase							(     self							):
  
  						'''simple docstring'''
  
  
  
  
  
  						return
  
  
  
  
  	@unittest.skip(reason='ResNet does not use inputs_embeds'							)
  	def    __UpperCAmelCase							(     self							):
  
  						'''simple docstring'''
  
  
  
  
  
  						pass
  
  
  
  
  	@unittest.skip(reason='ResNet does not support input and output embeddings'							)
  	def    __UpperCAmelCase							(     self							):
  
  						'''simple docstring'''
  
  
  
  
  
  						pass
  
  
  
  
  	def    __UpperCAmelCase							(     self							):
  
  						'''simple docstring'''
  
  
  
  
  
  						__a					,       __a    : Any      					=						self.model_tester.prepare_config_and_inputs_for_common()
  
  						for model_class in self.all_model_classes:
  											__a    : Any      					=						model_class(__a							)
  											__a    : Dict      					=						inspect.signature(model.forward							)
  											# signature.parameters is an OrderedDict => so arg_names order is deterministic
  											__a    : List[str]      					=						[*signature.parameters.keys()]
  
  											__a    : Any      					=						['pixel_values']
  											self.assertListEqual(arg_names[:1]		,       __a							)
  
  
  
  
  	def    __UpperCAmelCase							(     self							):
  
  						'''simple docstring'''
  
  
  
  
  
  						__a    : Union[str, Any]      					=						self.model_tester.prepare_config_and_inputs()
  						self.model_tester.create_and_check_model(*__a							)
  
  
  
  
  	def    __UpperCAmelCase							(     self							):
  
  						'''simple docstring'''
  
  
  
  
  
  						__a    : int      					=						self.model_tester.prepare_config_and_inputs()
  						self.model_tester.create_and_check_backbone(*__a							)
  
  
  
  
  	def    __UpperCAmelCase							(     self							):
  
  						'''simple docstring'''
  
  
  
  
  
  						__a					,       __a    : Union[str, Any]      					=						self.model_tester.prepare_config_and_inputs_for_common()
  
  						for model_class in self.all_model_classes:
  											__a    : Tuple      					=						model_class(config=__a							)
  											for name, module in model.named_modules():
  																if isinstance(__a		,       (nn.BatchNormad, nn.GroupNorm)							):
  																					self.assertTrue(
  																					    torch.all(module.weight == 1							)		,       msg=f"""Parameter {name} of model {model_class} seems not properly initialized"""		,       )
  																					self.assertTrue(
  																					    torch.all(module.bias == 0							)		,       msg=f"""Parameter {name} of model {model_class} seems not properly initialized"""		,       )
  
  
  
  
  	def    __UpperCAmelCase							(     self							):
  
  						'''simple docstring'''
  
  
  
  
  
  						def check_hidden_states_output(__a		,       __a		,       __a							):
  											__a    : Dict      					=						model_class(__a							)
  											model.to(__a							)
  											model.eval()
  
  											with torch.no_grad():
  																__a    : Tuple      					=						model(**self._prepare_for_class(__a		,       __a							)							)
  
  											__a    : List[Any]      					=						outputs.encoder_hidden_states if config.is_encoder_decoder else outputs.hidden_states
  
  											__a    : List[Any]      					=						self.model_tester.num_stages
  											self.assertEqual(len(__a							)		,       expected_num_stages + 1							)
  
  											# ResNet's feature maps are of shape (batch_size, num_channels, height, width)
  											self.assertListEqual(
  											    list(hidden_states[0].shape[-2:]							)		,       [self.model_tester.image_size // 4, self.model_tester.image_size // 4]		,       )
  
  						__a					,       __a    : str      					=						self.model_tester.prepare_config_and_inputs_for_common()
  						__a    : Union[str, Any]      					=						['basic', 'bottleneck']
  						for model_class in self.all_model_classes:
  											for layer_type in layers_type:
  																__a    : int      					=						layer_type
  																__a    : str      					=						True
  																check_hidden_states_output(__a		,       __a		,       __a							)
  
  																# check that output_hidden_states also work using config
  																del inputs_dict["output_hidden_states"]
  																__a    : Dict      					=						True
  
  																check_hidden_states_output(__a		,       __a		,       __a							)
  
  
  
  
  	@unittest.skip(reason='ResNet does not use feedforward chunking'							)
  	def    __UpperCAmelCase							(     self							):
  
  						'''simple docstring'''
  
  
  
  
  
  						pass
  
  
  
  
  	def    __UpperCAmelCase							(     self							):
  
  						'''simple docstring'''
  
  
  
  
  
  						__a    : Any      					=						self.model_tester.prepare_config_and_inputs()
  						self.model_tester.create_and_check_for_image_classification(*__a							)
  
  
  
  
  
  	@slow
  	def    __UpperCAmelCase							(     self							):
  
  						'''simple docstring'''
  
  
  
  
  
  						for model_name in RESNET_PRETRAINED_MODEL_ARCHIVE_LIST[:1]:
  											__a    : int      					=						ResNetModel.from_pretrained(__a							)
  											self.assertIsNotNone(__a							)
  
  
  
  
  
  
  def 						lowerCamelCase							():
  					__a    : Optional[Any]      					=						Image.open('./tests/fixtures/tests_samples/COCO/000000039769.png'     )
  					return image
  
  
  
  
  
  @require_torch
  @require_vision
  class 							__UpperCamelCase       (	unittest.TestCase      ):
  
  
  
  
  	@cached_property
  	def    __UpperCAmelCase							(     self							):
  
  						'''simple docstring'''
  
  
  
  
  
  						return (
  						    AutoImageProcessor.from_pretrained(RESNET_PRETRAINED_MODEL_ARCHIVE_LIST[0]							)
  						    if is_vision_available()
  						    else None
  						)
  
  
  
  
  
  	@slow
  	def    __UpperCAmelCase							(     self							):
  
  						'''simple docstring'''
  
  
  
  
  
  						__a    : Dict      					=						ResNetForImageClassification.from_pretrained(RESNET_PRETRAINED_MODEL_ARCHIVE_LIST[0]							).to(__a							)
  
  						__a    : str      					=						self.default_image_processor
  						__a    : Optional[int]      					=						prepare_img()
  						__a    : Optional[Any]      					=						image_processor(images=__a		,       return_tensors='pt'							).to(__a							)
  
  						# forward pass
  						with torch.no_grad():
  											__a    : str      					=						model(**__a							)
  
  						# verify the logits
  						__a    : Optional[Any]      					=						torch.Size((1, 1000)							)
  						self.assertEqual(outputs.logits.shape		,       __a							)
  
  						__a    : str      					=						torch.tensor([-11.1069, -9.7877, -8.3777]							).to(__a							)
  
  						self.assertTrue(torch.allclose(outputs.logits[0, :3]		,       __a		,       atol=1E-4							)							)
  
  
  
  
  
  @require_torch
  class 							__UpperCamelCase       (	UpperCAmelCase_	,   unittest.TestCase      ):
  	A_					    =					(ResNetBackbone,) if is_torch_available() else ()
  	A_					    =					False
  	A_					    =					ResNetConfig
  
  
  
  
  	def    __UpperCAmelCase							(     self							):
  
  						'''simple docstring'''
  
  
  
  
  
  						__a    : Union[str, Any]      					=						ResNetModelTester(self							)
  
  
  
  
style_context: 
  
  
  '''simple docstring'''
  
  
  
  import torch
  
  from diffusers import KDPMaAncestralDiscreteScheduler
  from diffusers.utils import torch_device
  
  from .test_schedulers import SchedulerCommonTest
  
  
  
  
  
  class 							__UpperCamelCase       (	lowerCAmelCase_      ):
  	A_			    =					(KDPMaAncestralDiscreteScheduler,)
  	A_			    =					10
  
  
  
  
  	def    __UpperCAmelCase							(     self		,       **__a							):
  
  						'''simple docstring'''
  
  
  
  
  
  						__a    : Dict      					=						{
  						    'num_train_timesteps': 1100,
  						    'beta_start': 0.0001,
  						    'beta_end': 0.02,
  						    'beta_schedule': 'linear',
  						}
  
  						config.update(**__a							)
  						return config
  
  
  
  
  	def    __UpperCAmelCase							(     self							):
  
  						'''simple docstring'''
  
  
  
  
  
  						for timesteps in [10, 50, 100, 1000]:
  											self.check_over_configs(num_train_timesteps=__a							)
  
  
  
  
  	def    __UpperCAmelCase							(     self							):
  
  						'''simple docstring'''
  
  
  
  
  
  						for beta_start, beta_end in zip([0.00001, 0.0001, 0.001]		,       [0.0002, 0.002, 0.02]							):
  											self.check_over_configs(beta_start=__a		,       beta_end=__a							)
  
  
  
  
  	def    __UpperCAmelCase							(     self							):
  
  						'''simple docstring'''
  
  
  
  
  
  						for schedule in ["linear", "scaled_linear"]:
  											self.check_over_configs(beta_schedule=__a							)
  
  
  
  
  	def    __UpperCAmelCase							(     self							):
  
  						'''simple docstring'''
  
  
  
  
  
  						if torch_device == "mps":
  											return
  						__a    : Dict      					=						self.scheduler_classes[0]
  						__a    : Tuple      					=						self.get_scheduler_config()
  						__a    : Optional[int]      					=						scheduler_class(**__a							)
  
  						scheduler.set_timesteps(self.num_inference_steps							)
  
  						__a    : int      					=						torch.manual_seed(0							)
  
  						__a    : Dict      					=						self.dummy_model()
  						__a    : List[Any]      					=						self.dummy_sample_deter * scheduler.init_noise_sigma
  						__a    : int      					=						sample.to(__a							)
  
  						for i, t in enumerate(scheduler.timesteps							):
  											__a    : Any      					=						scheduler.scale_model_input(__a		,       __a							)
  
  											__a    : int      					=						model(__a		,       __a							)
  
  											__a    : Dict      					=						scheduler.step(__a		,       __a		,       __a		,       generator=__a							)
  											__a    : int      					=						output.prev_sample
  
  						__a    : Tuple      					=						torch.sum(torch.abs(__a							)							)
  						__a    : List[str]      					=						torch.mean(torch.abs(__a							)							)
  
  						assert abs(result_sum.item() - 13849.3877							) < 1E-2
  						assert abs(result_mean.item() - 18.0331							) < 5E-3
  
  
  
  
  	def    __UpperCAmelCase							(     self							):
  
  						'''simple docstring'''
  
  
  
  
  
  						for prediction_type in ["epsilon", "v_prediction"]:
  											self.check_over_configs(prediction_type=__a							)
  
  
  
  
  	def    __UpperCAmelCase							(     self							):
  
  						'''simple docstring'''
  
  
  
  
  
  						if torch_device == "mps":
  											return
  						__a    : Dict      					=						self.scheduler_classes[0]
  						__a    : Dict      					=						self.get_scheduler_config(prediction_type='v_prediction'							)
  						__a    : List[str]      					=						scheduler_class(**__a							)
  
  						scheduler.set_timesteps(self.num_inference_steps							)
  
  						__a    : Dict      					=						self.dummy_model()
  						__a    : List[str]      					=						self.dummy_sample_deter * scheduler.init_noise_sigma
  						__a    : List[str]      					=						sample.to(__a							)
  
  						__a    : Tuple      					=						torch.manual_seed(0							)
  
  						for i, t in enumerate(scheduler.timesteps							):
  											__a    : List[Any]      					=						scheduler.scale_model_input(__a		,       __a							)
  
  											__a    : Optional[int]      					=						model(__a		,       __a							)
  
  											__a    : Union[str, Any]      					=						scheduler.step(__a		,       __a		,       __a		,       generator=__a							)
  											__a    : Union[str, Any]      					=						output.prev_sample
  
  						__a    : Any      					=						torch.sum(torch.abs(__a							)							)
  						__a    : Optional[int]      					=						torch.mean(torch.abs(__a							)							)
  
  						assert abs(result_sum.item() - 328.9970							) < 1E-2
  						assert abs(result_mean.item() - 0.4284							) < 1E-3
  
  
  
  
  
  	def    __UpperCAmelCase							(     self							):
  
  						'''simple docstring'''
  
  
  
  
  
  						if torch_device == "mps":
  											return
  						__a    : List[str]      					=						self.scheduler_classes[0]
  						__a    : Union[str, Any]      					=						self.get_scheduler_config()
  						__a    : List[Any]      					=						scheduler_class(**__a							)
  
  						scheduler.set_timesteps(self.num_inference_steps		,       device=__a							)
  						__a    : Union[str, Any]      					=						torch.manual_seed(0							)
  
  						__a    : List[str]      					=						self.dummy_model()
  						__a    : Any      					=						self.dummy_sample_deter.to(__a							) * scheduler.init_noise_sigma
  
  						for t in scheduler.timesteps:
  											__a    : List[Any]      					=						scheduler.scale_model_input(__a		,       __a							)
  
  											__a    : str      					=						model(__a		,       __a							)
  
  											__a    : str      					=						scheduler.step(__a		,       __a		,       __a		,       generator=__a							)
  											__a    : Any      					=						output.prev_sample
  
  						__a    : Union[str, Any]      					=						torch.sum(torch.abs(__a							)							)
  						__a    : str      					=						torch.mean(torch.abs(__a							)							)
  
  						assert abs(result_sum.item() - 13849.3818							) < 1E-1
  						assert abs(result_mean.item() - 18.0331							) < 1E-3
  
  
  
  