






'''simple docstring'''





from sklearn.metrics import accuracy_score

import datasets


a_      = '\nAccuracy is the proportion of correct predictions among the total number of cases processed. It can be computed with:\nAccuracy = (TP + TN) / (TP + TN + FP + FN)\n Where:\nTP: True positive\nTN: True negative\nFP: False positive\nFN: False negative\n'


a_      = '\nArgs:\n    predictions (`list` of `int`): Predicted labels.\n    references (`list` of `int`): Ground truth labels.\n    normalize (`boolean`): If set to False, returns the number of correctly classified samples. Otherwise, returns the fraction of correctly classified samples. Defaults to True.\n    sample_weight (`list` of `float`): Sample weights Defaults to None.\n\nReturns:\n    accuracy (`float` or `int`): Accuracy score. Minimum possible value is 0. Maximum possible value is 1.0, or the number of examples input, if `normalize` is set to `True`.. A higher score means higher accuracy.\n\nExamples:\n\n    Example 1-A simple example\n        >>> accuracy_metric = datasets.load_metric("accuracy")\n        >>> results = accuracy_metric.compute(references=[0, 1, 2, 0, 1, 2], predictions=[0, 1, 1, 2, 1, 0])\n        >>> print(results)\n        {\'accuracy\': 0.5}\n\n    Example 2-The same as Example 1, except with `normalize` set to `False`.\n        >>> accuracy_metric = datasets.load_metric("accuracy")\n        >>> results = accuracy_metric.compute(references=[0, 1, 2, 0, 1, 2], predictions=[0, 1, 1, 2, 1, 0], normalize=False)\n        >>> print(results)\n        {\'accuracy\': 3.0}\n\n    Example 3-The same as Example 1, except with `sample_weight` set.\n        >>> accuracy_metric = datasets.load_metric("accuracy")\n        >>> results = accuracy_metric.compute(references=[0, 1, 2, 0, 1, 2], predictions=[0, 1, 1, 2, 1, 0], sample_weight=[0.5, 2, 0.7, 0.5, 9, 0.4])\n        >>> print(results)\n        {\'accuracy\': 0.8778625954198473}\n'


a_      = '\n@article{scikit-learn,\n  title={Scikit-learn: Machine Learning in {P}ython},\n  author={Pedregosa, F. and Varoquaux, G. and Gramfort, A. and Michel, V.\n         and Thirion, B. and Grisel, O. and Blondel, M. and Prettenhofer, P.\n         and Weiss, R. and Dubourg, V. and Vanderplas, J. and Passos, A. and\n         Cournapeau, D. and Brucher, M. and Perrot, M. and Duchesnay, E.},\n  journal={Journal of Machine Learning Research},\n  volume={12},\n  pages={2825--2830},\n  year={2011}\n}\n'





@datasets.utils.file_utils.add_start_docstrings(_DESCRIPTION		,		_KWARGS_DESCRIPTION    )
class 		SCREAMING_SNAKE_CASE__   (     datasets.Metric    ):



  def _lowerCAmelCase     (    self:    Optional[Any])  ->Union[str, Any]:






        '''simple docstring'''


        return datasets.MetricInfo(
            description=_DESCRIPTION				,   citation=_CITATION				,   inputs_description=_KWARGS_DESCRIPTION				,   features=datasets.Features(
                {
                    "predictions": datasets.Sequence(datasets.Value("int32")),
                    "references": datasets.Sequence(datasets.Value("int32")),
                }
                if self.config_name == "multilabel"
                else {
                    "predictions": datasets.Value("int32"),
                    "references": datasets.Value("int32"),
                })				,   reference_urls=["https://scikit-learn.org/stable/modules/generated/sklearn.metrics.accuracy_score.html"]				,   )




  def _lowerCAmelCase     (    self:    int				,   a:    str				,   a:    Optional[Any]				,   a:    List[str]=True				,   a:    List[str]=None)  ->Optional[int]:






        '''simple docstring'''


        return {
            "accuracy": float(
                accuracy_score(a				,   a				,   normalize=a				,   sample_weight=a))
        }











'''simple docstring'''





from functools import partial
from typing import Any, Callable, Dict, List, Type, TypeVar, Union, overload

import torch
import torch.nn as nn
import torch.types



def 			__UpperCAmelCase				(lowercase__	,lowercase__	,lowercase__				)		->				torch.Tensor:

						'''simple docstring'''


						if not inplace:
												a_				     =   ma + ma
						else:
												ma += ma

						return ma



def 			__UpperCAmelCase				(lowercase__	,lowercase__				)		->				torch.Tensor:

						'''simple docstring'''


						a_				     =   -1 * len(lowercase__				)
						a_				     =   list(range(len(tensor.shape[:zero_index]				)				)				)
						return tensor.permute(first_inds + [zero_index + i for i in inds]				)



def 			__UpperCAmelCase				(lowercase__	,lowercase__				)		->				torch.Tensor:

						'''simple docstring'''


						return t.reshape(t.shape[:-no_dims] + (-1,)				)



def 			__UpperCAmelCase				(lowercase__	,lowercase__	,lowercase__	,lowercase__ = 1e-4				)		->				torch.Tensor:

						'''simple docstring'''


						a_				     =   mask.expand(*value.shape				)
						return torch.sum(mask * value	,dim=lowercase__				) / (eps + torch.sum(lowercase__	,dim=lowercase__				))



def 			__UpperCAmelCase				(lowercase__	,lowercase__ = 2.3125	,lowercase__ = 21.6875	,lowercase__ = 64				)		->				torch.Tensor:

						'''simple docstring'''


						a_				     =   torch.linspace(lowercase__	,lowercase__	,no_bins - 1	,device=pts.device				)
						a_				     =   torch.sqrt(torch.sum((pts.unsqueeze(-2				) - pts.unsqueeze(-3				)) ** 2	,dim=-1				)				)
						return torch.bucketize(lowercase__	,lowercase__				)



def 			__UpperCAmelCase				(lowercase__	,lowercase__				)		->				dict:

						'''simple docstring'''


						a_				     =   dicts[0]
						a_				     =   {}
						for k, v in first.items():
												a_				     =   [d[k] for d in dicts]
												if isinstance(lowercase__	,lowercase__				):
																		a_				     =   dict_multimap(lowercase__	,lowercase__				)
												else:
																		a_				     =   fn(lowercase__				)

						return new_dict



def 			__UpperCAmelCase				(lowercase__	,lowercase__				)		->				torch.Tensor:

						'''simple docstring'''


						a_				     =   v_bins.view(((1,) * len(x.shape				)) + (len(lowercase__				),)				)
						a_				     =   x[..., None] - reshaped_bins
						a_				     =   torch.argmin(torch.abs(lowercase__				)	,dim=-1				)
						return nn.functional.one_hot(lowercase__	,num_classes=len(lowercase__				)				).float()



def 			__UpperCAmelCase				(lowercase__	,lowercase__	,lowercase__ = 0	,lowercase__ = 0				)		->				torch.Tensor:

						'''simple docstring'''


						a_				     =   []
						for i, s in enumerate(data.shape[:no_batch_dims]				):
												a_				     =   torch.arange(lowercase__				)
												a_				     =   r.view(*(*((1,) * i), -1, *((1,) * (len(inds.shape				) - i - 1)))				)
												ranges.append(lowercase__				)

						a_				     =   [slice(lowercase__				) for _ in range(len(data.shape				) - no_batch_dims				)]
						a_				     =   inds
						ranges.extend(lowercase__				)
						# Matt note: Editing this to get around the behaviour of using a list as an array index changing
						# in recent Numpy versions
						return data[tuple(lowercase__				)]


a_      = TypeVar('T')



def 			__UpperCAmelCase				(lowercase__	,lowercase__	,lowercase__				)		->				Dict[Any, Union[dict, list, tuple, Any]]:

						'''simple docstring'''


						a_				     =   {}
						for k, v in dic.items():
												if isinstance(lowercase__	,lowercase__				):
																		a_				     =   dict_map(lowercase__	,lowercase__	,lowercase__				)
												else:
																		a_				     =   tree_map(lowercase__	,lowercase__	,lowercase__				)

						return new_dict



@overload
def 			__UpperCAmelCase				(lowercase__	,lowercase__	,lowercase__				)		->				Any:

						'''simple docstring'''


						...



@overload
def 			__UpperCAmelCase				(lowercase__	,lowercase__	,lowercase__				)		->				dict:

						'''simple docstring'''


						...



@overload
def 			__UpperCAmelCase				(lowercase__	,lowercase__	,lowercase__				)		->				list:

						'''simple docstring'''


						...



@overload
def 			__UpperCAmelCase				(lowercase__	,lowercase__	,lowercase__				)		->				tuple:

						'''simple docstring'''


						...



def 			__UpperCAmelCase				(lowercase__	,lowercase__	,lowercase__				)		->				List[Any]:

						'''simple docstring'''


						if isinstance(lowercase__	,lowercase__				):
												return dict_map(lowercase__	,lowercase__	,lowercase__				)
						elif isinstance(lowercase__	,lowercase__				):
												return [tree_map(lowercase__	,lowercase__	,lowercase__				) for x in tree]
						elif isinstance(lowercase__	,lowercase__				):
												return tuple(tree_map(lowercase__	,lowercase__	,lowercase__				) for x in tree				)
						elif isinstance(lowercase__	,lowercase__				):
												return fn(lowercase__				)
						else:
												print(type(lowercase__				)				)
												raise ValueError("Not supported"				)
a_      = partial(tree_map, leaf_type=torch.Tensor)



