
import argparse

import evaluate
import torch
from datasets import load_dataset
from torch.optim import AdamW
from torch.utils.data import DataLoader
from transformers import AutoModelForSequenceClassification, AutoTokenizer, get_linear_schedule_with_warmup, set_seed

from accelerate import Accelerator, DistributedType


########################################################################
# This is a fully working simple example to use Accelerate
#
# This example trains a Bert base model on GLUE MRPC
# in any of the following settings (with the same script):
#   - single CPU or single GPU
#   - multi GPUS (using PyTorch distributed mode)
#   - (multi) TPUs
#   - fp16 (mixed-precision) or fp32 (normal precision)
#
# To run it in each of these various modes, follow the instructions
# in the readme for examples:
# https://github.com/huggingface/accelerate/tree/main/examples
#
########################################################################


_A   =     16
_A   =     32






def    lowerCamelCase__				(				__lowerCAmelCase  :  Accelerator    ,							__lowerCAmelCase  :  int = 16				):




			"""simple docstring"""


			lowerCAmelCase_						=	AutoTokenizer.from_pretrained("bert-base-cased"				)
			lowerCAmelCase_						=	load_dataset("glue"    ,							"mrpc"				)

			def tokenize_function(__lowerCAmelCase  :  str				):
						# max_length=None => use the model max length (it's actually the default)
						lowerCAmelCase_						=	tokenizer(examples["sentence1"]    ,							examples["sentence2"]    ,							truncation=__lowerCAmelCase    ,							max_length=__lowerCAmelCase				)
						return outputs

			# Apply the method we just defined to all the examples in all the splits of the dataset
			# starting with the main process first:
			with accelerator.main_process_first():
						lowerCAmelCase_						=	datasets.map(
						    __lowerCAmelCase    ,							batched=__lowerCAmelCase    ,							remove_columns=["idx", "sentence1", "sentence2"]    ,							)

			# We also rename the 'label' column to 'labels' which is the expected name for labels by the models of the
			# transformers library
			lowerCAmelCase_						=	tokenized_datasets.rename_column("label"    ,							"labels"				)

			def collate_fn(__lowerCAmelCase  :  Optional[int]				):
						# On TPU it's best to pad everything to the same length or training will be very slow.
						lowerCAmelCase_						=	128 if accelerator.distributed_type == DistributedType.TPU else None
						# When using mixed precision we want round multiples of 8/16
						if accelerator.mixed_precision == "fp8":
									lowerCAmelCase_						=	16
						elif accelerator.mixed_precision != "no":
									lowerCAmelCase_						=	8
						else:
									lowerCAmelCase_						=	None

						return tokenizer.pad(
						    __lowerCAmelCase    ,							padding="longest"    ,							max_length=__lowerCAmelCase    ,							pad_to_multiple_of=__lowerCAmelCase    ,							return_tensors="pt"    ,							)

			# Instantiate dataloaders.
			lowerCAmelCase_						=	DataLoader(
			    tokenized_datasets["train"]    ,							shuffle=__lowerCAmelCase    ,							collate_fn=__lowerCAmelCase    ,							batch_size=__lowerCAmelCase    ,							drop_last=__lowerCAmelCase				)
			lowerCAmelCase_						=	DataLoader(
			    tokenized_datasets["validation"]    ,							shuffle=__lowerCAmelCase    ,							collate_fn=__lowerCAmelCase    ,							batch_size=__lowerCAmelCase    ,							drop_last=(accelerator.mixed_precision == "fp8")    ,							)

			return train_dataloader, eval_dataloader






def    lowerCamelCase__				(				__lowerCAmelCase  :  Dict    ,							__lowerCAmelCase  :  str				):




			"""simple docstring"""


			lowerCAmelCase_						=	Accelerator(cpu=args.cpu    ,							mixed_precision=args.mixed_precision				)
			# Sample hyper-parameters for learning rate, batch size, seed and a few other HPs
			lowerCAmelCase_						=	config["lr"]
			lowerCAmelCase_						=	int(config["num_epochs"]				)
			lowerCAmelCase_						=	int(config["seed"]				)
			lowerCAmelCase_						=	int(config["batch_size"]				)

			lowerCAmelCase_						=	evaluate.load("glue"    ,							"mrpc"				)

			# If the batch size is too big we use gradient accumulation
			lowerCAmelCase_						=	1
			if batch_size > MAX_GPU_BATCH_SIZE and accelerator.distributed_type != DistributedType.TPU:
						lowerCAmelCase_						=	batch_size // MAX_GPU_BATCH_SIZE
						lowerCAmelCase_						=	MAX_GPU_BATCH_SIZE

			set_seed(__lowerCAmelCase				)
			lowerCAmelCase_	,  lowerCAmelCase_						=	get_dataloaders(__lowerCAmelCase    ,							__lowerCAmelCase				)
			# Instantiate the model (we build the model here so that the seed also control new weights initialization)
			lowerCAmelCase_						=	AutoModelForSequenceClassification.from_pretrained("bert-base-cased"    ,							return_dict=__lowerCAmelCase				)

			# We could avoid this line since the accelerator is set with `device_placement=True` (default value).
			# Note that if you are placing tensors on devices manually, this line absolutely needs to be before the optimizer
			# creation otherwise training will not work on TPU (`accelerate` will kindly throw an error to make us aware of that).
			lowerCAmelCase_						=	model.to(accelerator.device				)
			# Instantiate optimizer
			lowerCAmelCase_						=	AdamW(params=model.parameters()    ,							lr=__lowerCAmelCase				)

			# Instantiate scheduler
			lowerCAmelCase_						=	get_linear_schedule_with_warmup(
			    optimizer=__lowerCAmelCase    ,							num_warmup_steps=100    ,							num_training_steps=(len(__lowerCAmelCase				) * num_epochs) // gradient_accumulation_steps    ,							)

			# Prepare everything
			# There is no specific order to remember, we just need to unpack the objects in the same order we gave them to the
			# prepare method.

			lowerCAmelCase_	,  lowerCAmelCase_	,  lowerCAmelCase_	,  lowerCAmelCase_	,  lowerCAmelCase_						=	accelerator.prepare(
			    __lowerCAmelCase    ,							__lowerCAmelCase    ,							__lowerCAmelCase    ,							__lowerCAmelCase    ,							__lowerCAmelCase				)

			# Now we train the model
			for epoch in range(__lowerCAmelCase				):
						model.train()
						for step, batch in enumerate(__lowerCAmelCase				):
									# We could avoid this line since we set the accelerator with `device_placement=True`.
									batch.to(accelerator.device				)
									lowerCAmelCase_						=	model(**__lowerCAmelCase				)
									lowerCAmelCase_						=	outputs.loss
									lowerCAmelCase_						=	loss / gradient_accumulation_steps
									accelerator.backward(__lowerCAmelCase				)
									if step % gradient_accumulation_steps == 0:
												optimizer.step()
												lr_scheduler.step()
												optimizer.zero_grad()

						model.eval()
						for step, batch in enumerate(__lowerCAmelCase				):
									# We could avoid this line since we set the accelerator with `device_placement=True`.
									batch.to(accelerator.device				)
									with torch.no_grad():
												lowerCAmelCase_						=	model(**__lowerCAmelCase				)
									lowerCAmelCase_						=	outputs.logits.argmax(dim=-1				)
									lowerCAmelCase_	,  lowerCAmelCase_						=	accelerator.gather_for_metrics((predictions, batch["labels"])				)
									metric.add_batch(
									    predictions=__lowerCAmelCase    ,							references=__lowerCAmelCase    ,							)

						lowerCAmelCase_						=	metric.compute()
						# Use accelerator.print to print only on the main process.
						accelerator.print(F"""epoch {epoch}:"""    ,							__lowerCAmelCase				)






def    lowerCamelCase__				(				):




			"""simple docstring"""


			lowerCAmelCase_						=	argparse.ArgumentParser(description="Simple example of training script."				)
			parser.add_argument(
			    "--mixed_precision"    ,							type=__lowerCAmelCase    ,							default=__lowerCAmelCase    ,							choices=["no", "fp16", "bf16", "fp8"]    ,							help="Whether to use mixed precision. Choose"
			    "between fp16 and bf16 (bfloat16). Bf16 requires PyTorch >= 1.10."
			    "and an Nvidia Ampere GPU."    ,							)
			parser.add_argument("--cpu"    ,							action="store_true"    ,							help="If passed, will train on the CPU."				)
			lowerCAmelCase_						=	parser.parse_args()
			lowerCAmelCase_						=	{"lr": 2e-5, "num_epochs": 3, "seed": 42, "batch_size": 16}
			training_function(__lowerCAmelCase    ,							__lowerCAmelCase				)


if __name__ == "__main__":
			main()





from ..utils import DummyObject, requires_backends





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[int]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      str:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Any:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Any:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      int:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      int:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      int:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[Any]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[str]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      int:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Tuple:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      int:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Tuple:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      int:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      int:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      str:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[str]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      int:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[int]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[str]:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      int:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[int]:
							requires_backends(cls				,				["torch"]     )






def    lowerCamelCase__				(				*__lowerCAmelCase  :  Union[str, Any]    ,							**__lowerCAmelCase  :  Dict				):




			"""simple docstring"""


			requires_backends(__lowerCAmelCase    ,							["torch"]				)






def    lowerCamelCase__				(				*__lowerCAmelCase  :  Optional[int]    ,							**__lowerCAmelCase  :  int				):




			"""simple docstring"""


			requires_backends(__lowerCAmelCase    ,							["torch"]				)






def    lowerCamelCase__				(				*__lowerCAmelCase  :  List[str]    ,							**__lowerCAmelCase  :  int				):




			"""simple docstring"""


			requires_backends(__lowerCAmelCase    ,							["torch"]				)






def    lowerCamelCase__				(				*__lowerCAmelCase  :  Union[str, Any]    ,							**__lowerCAmelCase  :  Optional[Any]				):




			"""simple docstring"""


			requires_backends(__lowerCAmelCase    ,							["torch"]				)






def    lowerCamelCase__				(				*__lowerCAmelCase  :  Dict    ,							**__lowerCAmelCase  :  Any				):




			"""simple docstring"""


			requires_backends(__lowerCAmelCase    ,							["torch"]				)






def    lowerCamelCase__				(				*__lowerCAmelCase  :  Optional[int]    ,							**__lowerCAmelCase  :  Dict				):




			"""simple docstring"""


			requires_backends(__lowerCAmelCase    ,							["torch"]				)






def    lowerCamelCase__				(				*__lowerCAmelCase  :  int    ,							**__lowerCAmelCase  :  Any				):




			"""simple docstring"""


			requires_backends(__lowerCAmelCase    ,							["torch"]				)





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      int:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[str]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[str]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Tuple:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      int:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[str]:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Union[str, Any]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[int]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[int]:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      int:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Tuple:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[str]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Union[str, Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[int]:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Tuple:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Any:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[int]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      str:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[Any]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[int]:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[Any]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      int:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Any:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Tuple:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Tuple:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[Any]:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Tuple:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[int]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Union[str, Any]:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[Any]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[str]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[int]:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Tuple:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[str]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      int:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Any:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[int]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[str]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[int]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[int]:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[Any]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Any:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[int]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Union[str, Any]:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Any:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      int:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Any:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Tuple:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Tuple:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      str:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[Any]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Tuple:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[Any]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Tuple:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      int:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      int:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Any:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Any:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      str:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      int:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[str]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Tuple:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Union[str, Any]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Union[str, Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      int:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[Any]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      int:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[str]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Tuple:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Any:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[Any]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[str]:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Optional[int]:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Union[str, Any]:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Tuple:
							requires_backends(cls				,				["torch"]     )





class 	_lowerCAmelCase					(	metaclass=__a       ):
				_lowercase					=['''torch''']




				def __init__(					self				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      str:
							requires_backends(self				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      Dict:
							requires_backends(cls				,				["torch"]     )




				@classmethod
				def      __a						(					cls				,				*_UpperCamelCase				,				**_UpperCamelCase     )				->      List[str]:
							requires_backends(cls				,				["torch"]     )



