code: 
  
  
  
  
  import argparse
  import json
  import re
  import string
  import sys
  
  import numpy as np
  
  
  SCREAMING_SNAKE_CASE__    :    List[Any] 						=					0.5
  
  def lowercase						(     SCREAMING_SNAKE_CASE					,						SCREAMING_SNAKE_CASE   ) ->       Optional[Any]:
  
  
  			'''simple docstring'''
  
  
  
  
  
  
  
  			SCREAMING_SNAKE_CASE_			=	['.', ',', ';', ':']
  
  			for token in remove_tokens:
  						SCREAMING_SNAKE_CASE_			=	ground_truth.replace(SCREAMING_SNAKE_CASE					,						''   )
  						SCREAMING_SNAKE_CASE_			=	prediction.replace(SCREAMING_SNAKE_CASE					,						''   )
  
  			SCREAMING_SNAKE_CASE_	,		SCREAMING_SNAKE_CASE_			=	ground_truth.lower(), prediction.lower()
  			SCREAMING_SNAKE_CASE_	,		SCREAMING_SNAKE_CASE_			=	ground_truth.replace('/'					,						' '   ), prediction.replace('/'					,						' '   )
  			SCREAMING_SNAKE_CASE_	,		SCREAMING_SNAKE_CASE_			=	set(ground_truth.split(' '   )   ), set(prediction.split(' '   )   )
  
  			SCREAMING_SNAKE_CASE_			=	ground_truth.intersection(SCREAMING_SNAKE_CASE   )
  			SCREAMING_SNAKE_CASE_			=	ground_truth.union(SCREAMING_SNAKE_CASE   )
  			SCREAMING_SNAKE_CASE_			=	len(SCREAMING_SNAKE_CASE   ) / len(SCREAMING_SNAKE_CASE   )
  			return jaccard
  
  def lowercase						(     SCREAMING_SNAKE_CASE   ) ->       List[str]:
  
  
  			'''simple docstring'''
  
  
  
  
  
  
  
  			def remove_articles(SCREAMING_SNAKE_CASE   ):
  						return re.sub(r'\b(a|an|the)\b'					,						' '					,						SCREAMING_SNAKE_CASE   )
  
  			def white_space_fix(SCREAMING_SNAKE_CASE   ):
  						return " ".join(text.split()   )
  
  			def remove_punc(SCREAMING_SNAKE_CASE   ):
  						SCREAMING_SNAKE_CASE_			=	set(string.punctuation   )
  						return "".join(ch for ch in text if ch not in exclude   )
  
  			def lower(SCREAMING_SNAKE_CASE   ):
  						return text.lower()
  
  			return white_space_fix(remove_articles(remove_punc(lower(SCREAMING_SNAKE_CASE   )   )   )   )
  
  def lowercase						(     SCREAMING_SNAKE_CASE					,						SCREAMING_SNAKE_CASE					,						SCREAMING_SNAKE_CASE   ) ->       str:
  
  
  			'''simple docstring'''
  
  
  
  
  
  
  
  			SCREAMING_SNAKE_CASE_	,		SCREAMING_SNAKE_CASE_	,		SCREAMING_SNAKE_CASE_			=	0, 0, 0
  
  			SCREAMING_SNAKE_CASE_			=	'Parties' in qa_id
  
  			# first check if ground truth is empty
  			if len(SCREAMING_SNAKE_CASE   ) == 0:
  						if len(SCREAMING_SNAKE_CASE   ) > 0:
  									fp += len(SCREAMING_SNAKE_CASE   )  # false positive for each one
  			else:
  						for ground_truth in ground_truths:
  									assert len(SCREAMING_SNAKE_CASE   ) > 0
  									# check if there is a match
  									SCREAMING_SNAKE_CASE_			=	False
  									for pred in predictions:
  												if substr_ok:
  															SCREAMING_SNAKE_CASE_			=	get_jaccard(SCREAMING_SNAKE_CASE					,						SCREAMING_SNAKE_CASE   ) >= IOU_THRESH or ground_truth in pred
  												else:
  															SCREAMING_SNAKE_CASE_			=	get_jaccard(SCREAMING_SNAKE_CASE					,						SCREAMING_SNAKE_CASE   ) >= IOU_THRESH
  												if is_match:
  															SCREAMING_SNAKE_CASE_			=	True
  
  									if match_found:
  												tp += 1
  									else:
  												fn += 1
  
          # now also get any fps by looping through preds
  						for pred in predictions:
  									# Check if there's a match. if so, don't count (don't want to double count based on the above)
  									# but if there's no match, then this is a false positive.
  									# (Note: we get the true positives in the above loop instead of this loop so that we don't double count
  									# multiple predictions that are matched with the same answer.)
  									SCREAMING_SNAKE_CASE_			=	False
  									for ground_truth in ground_truths:
  												assert len(SCREAMING_SNAKE_CASE   ) > 0
  												if substr_ok:
  															SCREAMING_SNAKE_CASE_			=	get_jaccard(SCREAMING_SNAKE_CASE					,						SCREAMING_SNAKE_CASE   ) >= IOU_THRESH or ground_truth in pred
  												else:
  															SCREAMING_SNAKE_CASE_			=	get_jaccard(SCREAMING_SNAKE_CASE					,						SCREAMING_SNAKE_CASE   ) >= IOU_THRESH
  												if is_match:
  															SCREAMING_SNAKE_CASE_			=	True
  
  									if not match_found:
  												fp += 1
  
  			SCREAMING_SNAKE_CASE_			=	tp / (tp + fp) if tp + fp > 0 else np.nan
  			SCREAMING_SNAKE_CASE_			=	tp / (tp + fn) if tp + fn > 0 else np.nan
  
  			return precision, recall
  
  def lowercase						(     SCREAMING_SNAKE_CASE   ) ->       Tuple:
  
  
  			'''simple docstring'''
  
  
  
  
  
  
  
  			SCREAMING_SNAKE_CASE_			=	precisions[::-1]
  			for i in range(1					,						len(SCREAMING_SNAKE_CASE   )   ):
  						SCREAMING_SNAKE_CASE_			=	max(precision_best[i - 1]					,						precision_best[i]   )
  			SCREAMING_SNAKE_CASE_			=	precision_best[::-1]
  			return precisions
  
  def lowercase						(     SCREAMING_SNAKE_CASE					,						SCREAMING_SNAKE_CASE   ) ->       List[str]:
  
  
  			'''simple docstring'''
  
  
  
  
  
  
  
  			SCREAMING_SNAKE_CASE_			=	process_precisions(SCREAMING_SNAKE_CASE   )
  			SCREAMING_SNAKE_CASE_			=	np.trapz(SCREAMING_SNAKE_CASE					,						SCREAMING_SNAKE_CASE   )
  			if np.isnan(SCREAMING_SNAKE_CASE   ):
  						return 0
  			return aupr
  
  def lowercase						(     SCREAMING_SNAKE_CASE					,						SCREAMING_SNAKE_CASE					,						SCREAMING_SNAKE_CASE   ) ->       Dict:
  
  
  			'''simple docstring'''
  
  
  
  
  
  
  
  			SCREAMING_SNAKE_CASE_			=	process_precisions(SCREAMING_SNAKE_CASE   )
  			SCREAMING_SNAKE_CASE_			=	0
  			for prec, recall in zip(SCREAMING_SNAKE_CASE					,						SCREAMING_SNAKE_CASE   ):
  						if recall >= recall_thresh:
  									SCREAMING_SNAKE_CASE_			=	prec
  									break
  			return prec_at_recall
  
  def lowercase						(     SCREAMING_SNAKE_CASE					,						SCREAMING_SNAKE_CASE   ) ->       str:
  
  
  			'''simple docstring'''
  
  
  
  
  
  
  
  			return normalize_answer(SCREAMING_SNAKE_CASE   ) == normalize_answer(SCREAMING_SNAKE_CASE   )
  
  def lowercase						(     SCREAMING_SNAKE_CASE					,						SCREAMING_SNAKE_CASE					,						SCREAMING_SNAKE_CASE   ) ->       List[str]:
  
  
  			'''simple docstring'''
  
  
  
  
  
  
  
  			SCREAMING_SNAKE_CASE_			=	0
  			for pred in predictions:
  						for ground_truth in ground_truths:
  									SCREAMING_SNAKE_CASE_			=	metric_fn(SCREAMING_SNAKE_CASE					,						SCREAMING_SNAKE_CASE   )
  									if score == 1:  # break the loop when one prediction matches the ground truth
  												break
  						if score == 1:
  									break
  			return score
  
  def lowercase						(     SCREAMING_SNAKE_CASE					,						SCREAMING_SNAKE_CASE   ) ->       Any:
  
  
  			'''simple docstring'''
  
  
  
  
  
  
  
  			SCREAMING_SNAKE_CASE_			=	SCREAMING_SNAKE_CASE_			=	SCREAMING_SNAKE_CASE_			=	0
  			SCREAMING_SNAKE_CASE_			=	[]
  			SCREAMING_SNAKE_CASE_			=	[]
  			for article in dataset:
  						for paragraph in article["paragraphs"]:
  									for qa in paragraph["qas"]:
  												total += 1
  												if qa["id"] not in predictions:
  															SCREAMING_SNAKE_CASE_			=	'Unanswered question ' + qa['id'] + ' will receive score 0.'
  															print(SCREAMING_SNAKE_CASE					,						file=sys.stderr   )
  															continue
  												SCREAMING_SNAKE_CASE_			=	[x['text'] for x in qa['answers']]
  												SCREAMING_SNAKE_CASE_			=	predictions[qa['id']]
  												SCREAMING_SNAKE_CASE_	,		SCREAMING_SNAKE_CASE_			=	compute_precision_recall(SCREAMING_SNAKE_CASE					,						SCREAMING_SNAKE_CASE					,						qa['id']   )
  
  												precisions.append(SCREAMING_SNAKE_CASE   )
  												recalls.append(SCREAMING_SNAKE_CASE   )
  
  												if precision == 0 and recall == 0:
  															fa += 0
  												else:
  															fa += 2 * (precision * recall) / (precision + recall)
  
  												exact_match += metric_max_over_ground_truths(SCREAMING_SNAKE_CASE					,						SCREAMING_SNAKE_CASE					,						SCREAMING_SNAKE_CASE   )
  
  			SCREAMING_SNAKE_CASE_			=	[x for _, x in sorted(zip(SCREAMING_SNAKE_CASE					,						SCREAMING_SNAKE_CASE   )   )]
  			recalls.sort()
  
  			SCREAMING_SNAKE_CASE_			=	100.0 * fa / total
  			SCREAMING_SNAKE_CASE_			=	100.0 * exact_match / total
  			SCREAMING_SNAKE_CASE_			=	get_aupr(SCREAMING_SNAKE_CASE					,						SCREAMING_SNAKE_CASE   )
  
  			SCREAMING_SNAKE_CASE_			=	get_prec_at_recall(SCREAMING_SNAKE_CASE					,						SCREAMING_SNAKE_CASE					,						recall_thresh=0.9   )
  			SCREAMING_SNAKE_CASE_			=	get_prec_at_recall(SCREAMING_SNAKE_CASE					,						SCREAMING_SNAKE_CASE					,						recall_thresh=0.8   )
  
  			return {
  			    "exact_match": exact_match,
  			    "f1": fa,
  			    "aupr": aupr,
  			    "prec_at_80_recall": prec_at_aa_recall,
  			    "prec_at_90_recall": prec_at_aa_recall,
  			}
  
  
  if __name__ == "__main__":
  				SCREAMING_SNAKE_CASE__    :    Optional[Any] 						=					argparse.ArgumentParser(description="Evaluation for CUAD")
  				parser.add_argument("dataset_file", help="Dataset file")
  				parser.add_argument("prediction_file", help="Prediction File")
  				SCREAMING_SNAKE_CASE__    :    Any 						=					parser.parse_args()
  				with open(args.dataset_file) as dataset_file:
  								SCREAMING_SNAKE_CASE__    :    Any 						=					json.load(dataset_file)
  								SCREAMING_SNAKE_CASE__    :    str 						=					dataset_json["data"]
  				with open(args.prediction_file) as prediction_file:
  								SCREAMING_SNAKE_CASE__    :    Union[str, Any] 						=					json.load(prediction_file)
  				print(json.dumps(evaluate(dataset, predictions)))
  
style_context: 
  
  
  
  
  from typing import Dict, List, Optional, Union
  
  import numpy as np
  
  from ...image_processing_utils import BaseImageProcessor, BatchFeature, get_size_dict
  from ...image_transforms import (
      get_resize_output_image_size,
      normalize,
      pad,
      rescale,
      resize,
      to_channel_dimension_format,
  )
  from ...image_utils import (
      IMAGENET_STANDARD_MEAN,
      IMAGENET_STANDARD_STD,
      ChannelDimension,
      ImageInput,
      PILImageResampling,
      get_image_size,
      make_list_of_images,
      to_numpy_array,
      valid_images,
  )
  from ...utils import TensorType, logging
  from ...utils.import_utils import is_vision_available
  
  
  SCREAMING_SNAKE_CASE__    :    Tuple								=					logging.get_logger(__name__)
  
  
  if is_vision_available():
  				import PIL
  
  
  
  class 			a_					(    SCREAMING_SNAKE_CASE__    ):
  	A						       =   ['''pixel_values''']
  
  
  
  
  
  	def __init__(       self			,    SCREAMING_SNAKE_CASE = True			,    SCREAMING_SNAKE_CASE = None			,    SCREAMING_SNAKE_CASE = PILImageResampling.BILINEAR			,    SCREAMING_SNAKE_CASE = True			,    SCREAMING_SNAKE_CASE = False			,    SCREAMING_SNAKE_CASE = True			,    SCREAMING_SNAKE_CASE = True			,    SCREAMING_SNAKE_CASE = 1 / 255			,    SCREAMING_SNAKE_CASE = True			,    SCREAMING_SNAKE_CASE = None			,    SCREAMING_SNAKE_CASE = None			,    **SCREAMING_SNAKE_CASE			,    )     ->				None:
  
  
  
  
  				"""simple docstring"""
  
  
  
  				super().__init__(**SCREAMING_SNAKE_CASE			)
  
  				SCREAMING_SNAKE_CASE_			=	size if size is not None else {'height': 2560, 'width': 1920}
  				if isinstance(SCREAMING_SNAKE_CASE			,    (tuple, list)			):
  							# The previous feature extractor size parameter was in (width, height) format
  							SCREAMING_SNAKE_CASE_			=	size[::-1]
  				SCREAMING_SNAKE_CASE_			=	get_size_dict(SCREAMING_SNAKE_CASE			)
  
  				SCREAMING_SNAKE_CASE_			=	do_resize
  				SCREAMING_SNAKE_CASE_			=	size
  				SCREAMING_SNAKE_CASE_			=	resample
  				SCREAMING_SNAKE_CASE_			=	do_thumbnail
  				SCREAMING_SNAKE_CASE_			=	do_align_long_axis
  				SCREAMING_SNAKE_CASE_			=	do_pad
  				SCREAMING_SNAKE_CASE_			=	do_rescale
  				SCREAMING_SNAKE_CASE_			=	rescale_factor
  				SCREAMING_SNAKE_CASE_			=	do_normalize
  				SCREAMING_SNAKE_CASE_			=	image_mean if image_mean is not None else IMAGENET_STANDARD_MEAN
  				SCREAMING_SNAKE_CASE_			=	image_std if image_std is not None else IMAGENET_STANDARD_STD
  
  
  
  
  
  	def 	A_(       self			,    SCREAMING_SNAKE_CASE			,    SCREAMING_SNAKE_CASE			,    SCREAMING_SNAKE_CASE = None			)     ->				np.ndarray:
  
  
  
  
  				"""simple docstring"""
  
  
  
  				SCREAMING_SNAKE_CASE_	,		SCREAMING_SNAKE_CASE_			=	get_image_size(SCREAMING_SNAKE_CASE			)
  				SCREAMING_SNAKE_CASE_	,		SCREAMING_SNAKE_CASE_			=	size['height'], size['width']
  
  				if (output_width < output_height and input_width > input_height) or (
  				    output_width > output_height and input_width < input_height
  				):
  							SCREAMING_SNAKE_CASE_			=	np.rotaa(SCREAMING_SNAKE_CASE			,    3			)
  
  				if data_format is not None:
  							SCREAMING_SNAKE_CASE_			=	to_channel_dimension_format(SCREAMING_SNAKE_CASE			,    SCREAMING_SNAKE_CASE			)
  
  				return image
  
  
  
  
  
  	def 	A_(       self			,    SCREAMING_SNAKE_CASE			,    SCREAMING_SNAKE_CASE			,    SCREAMING_SNAKE_CASE = False			,    SCREAMING_SNAKE_CASE = None			,    )     ->				np.ndarray:
  
  
  
  
  				"""simple docstring"""
  
  
  
  				SCREAMING_SNAKE_CASE_	,		SCREAMING_SNAKE_CASE_			=	size['height'], size['width']
  				SCREAMING_SNAKE_CASE_	,		SCREAMING_SNAKE_CASE_			=	get_image_size(SCREAMING_SNAKE_CASE			)
  
  				SCREAMING_SNAKE_CASE_			=	output_width - input_width
  				SCREAMING_SNAKE_CASE_			=	output_height - input_height
  
  				if random_padding:
  							SCREAMING_SNAKE_CASE_			=	np.random.randint(low=0			,    high=delta_height + 1			)
  							SCREAMING_SNAKE_CASE_			=	np.random.randint(low=0			,    high=delta_width + 1			)
  				else:
  							SCREAMING_SNAKE_CASE_			=	delta_height // 2
  							SCREAMING_SNAKE_CASE_			=	delta_width // 2
  
  				SCREAMING_SNAKE_CASE_			=	delta_height - pad_top
  				SCREAMING_SNAKE_CASE_			=	delta_width - pad_left
  
  				SCREAMING_SNAKE_CASE_			=	((pad_top, pad_bottom), (pad_left, pad_right))
  				return pad(SCREAMING_SNAKE_CASE			,    SCREAMING_SNAKE_CASE			,    data_format=SCREAMING_SNAKE_CASE			)
  
  
  
  
  
  	def 	A_(       self			,    *SCREAMING_SNAKE_CASE			,    **SCREAMING_SNAKE_CASE			)     ->				Any:
  
  
  
  
  				"""simple docstring"""
  
  
  
  				logger.info('pad is deprecated and will be removed in version 4.27. Please use pad_image instead.'			)
  				return self.pad_image(*SCREAMING_SNAKE_CASE			,    **SCREAMING_SNAKE_CASE			)
  
  
  
  
  
  	def 	A_(       self			,    SCREAMING_SNAKE_CASE			,    SCREAMING_SNAKE_CASE			,    SCREAMING_SNAKE_CASE = PILImageResampling.BICUBIC			,    SCREAMING_SNAKE_CASE = None			,    **SCREAMING_SNAKE_CASE			,    )     ->				np.ndarray:
  
  
  
  
  				"""simple docstring"""
  
  
  
  				SCREAMING_SNAKE_CASE_	,		SCREAMING_SNAKE_CASE_			=	get_image_size(SCREAMING_SNAKE_CASE			)
  				SCREAMING_SNAKE_CASE_	,		SCREAMING_SNAKE_CASE_			=	size['height'], size['width']
  
  				# We always resize to the smallest of either the input or output size.
  				SCREAMING_SNAKE_CASE_			=	min(SCREAMING_SNAKE_CASE			,    SCREAMING_SNAKE_CASE			)
  				SCREAMING_SNAKE_CASE_			=	min(SCREAMING_SNAKE_CASE			,    SCREAMING_SNAKE_CASE			)
  
  				if height == input_height and width == input_width:
  							return image
  
  				if input_height > input_width:
  							SCREAMING_SNAKE_CASE_			=	int(input_width * height / input_height			)
  				elif input_width > input_height:
  							SCREAMING_SNAKE_CASE_			=	int(input_height * width / input_width			)
  
  				return resize(
  				    SCREAMING_SNAKE_CASE			,    size=(height, width)			,    resample=SCREAMING_SNAKE_CASE			,    reducing_gap=2.0			,    data_format=SCREAMING_SNAKE_CASE			,    **SCREAMING_SNAKE_CASE			)
  
  
  
  
  
  	def 	A_(       self			,    SCREAMING_SNAKE_CASE			,    SCREAMING_SNAKE_CASE			,    SCREAMING_SNAKE_CASE = PILImageResampling.BICUBIC			,    SCREAMING_SNAKE_CASE = None			,    **SCREAMING_SNAKE_CASE			,    )     ->				np.ndarray:
  
  
  
  
  				"""simple docstring"""
  
  
  
  				SCREAMING_SNAKE_CASE_			=	get_size_dict(SCREAMING_SNAKE_CASE			)
  				SCREAMING_SNAKE_CASE_			=	min(size['height']			,    size['width']			)
  				SCREAMING_SNAKE_CASE_			=	get_resize_output_image_size(SCREAMING_SNAKE_CASE			,    size=SCREAMING_SNAKE_CASE			,    default_to_square=SCREAMING_SNAKE_CASE			)
  				SCREAMING_SNAKE_CASE_			=	resize(SCREAMING_SNAKE_CASE			,    size=SCREAMING_SNAKE_CASE			,    resample=SCREAMING_SNAKE_CASE			,    data_format=SCREAMING_SNAKE_CASE			,    **SCREAMING_SNAKE_CASE			)
  				return resized_image
  
  
  
  
  
  	def 	A_(       self			,    SCREAMING_SNAKE_CASE			,    SCREAMING_SNAKE_CASE			,    SCREAMING_SNAKE_CASE = None			,    **SCREAMING_SNAKE_CASE			,    )     ->				Any:
  
  
  
  
  				"""simple docstring"""
  
  
  
  				return rescale(SCREAMING_SNAKE_CASE			,    scale=SCREAMING_SNAKE_CASE			,    data_format=SCREAMING_SNAKE_CASE			,    **SCREAMING_SNAKE_CASE			)
  
  
  
  
  
  	def 	A_(       self			,    SCREAMING_SNAKE_CASE			,    SCREAMING_SNAKE_CASE			,    SCREAMING_SNAKE_CASE			,    SCREAMING_SNAKE_CASE = None			,    **SCREAMING_SNAKE_CASE			,    )     ->				np.ndarray:
  
  
  
  
  				"""simple docstring"""
  
  
  
  				return normalize(SCREAMING_SNAKE_CASE			,    mean=SCREAMING_SNAKE_CASE			,    std=SCREAMING_SNAKE_CASE			,    data_format=SCREAMING_SNAKE_CASE			,    **SCREAMING_SNAKE_CASE			)
  
  
  
  
  
  	def 	A_(       self			,    SCREAMING_SNAKE_CASE			,    SCREAMING_SNAKE_CASE = None			,    SCREAMING_SNAKE_CASE = None			,    SCREAMING_SNAKE_CASE = None			,    SCREAMING_SNAKE_CASE = None			,    SCREAMING_SNAKE_CASE = None			,    SCREAMING_SNAKE_CASE = None			,    SCREAMING_SNAKE_CASE = False			,    SCREAMING_SNAKE_CASE = None			,    SCREAMING_SNAKE_CASE = None			,    SCREAMING_SNAKE_CASE = None			,    SCREAMING_SNAKE_CASE = None			,    SCREAMING_SNAKE_CASE = None			,    SCREAMING_SNAKE_CASE = None			,    SCREAMING_SNAKE_CASE = ChannelDimension.FIRST			,    **SCREAMING_SNAKE_CASE			,    )     ->				PIL.Image.Image:
  
  
  
  
  				"""simple docstring"""
  
  
  
  				SCREAMING_SNAKE_CASE_			=	do_resize if do_resize is not None else self.do_resize
  				SCREAMING_SNAKE_CASE_			=	size if size is not None else self.size
  				if isinstance(SCREAMING_SNAKE_CASE			,    (tuple, list)			):
  							# Previous feature extractor had size in (width, height) format
  							SCREAMING_SNAKE_CASE_			=	size[::-1]
  				SCREAMING_SNAKE_CASE_			=	get_size_dict(SCREAMING_SNAKE_CASE			)
  				SCREAMING_SNAKE_CASE_			=	resample if resample is not None else self.resample
  				SCREAMING_SNAKE_CASE_			=	do_thumbnail if do_thumbnail is not None else self.do_thumbnail
  				SCREAMING_SNAKE_CASE_			=	do_align_long_axis if do_align_long_axis is not None else self.do_align_long_axis
  				SCREAMING_SNAKE_CASE_			=	do_pad if do_pad is not None else self.do_pad
  				SCREAMING_SNAKE_CASE_			=	do_rescale if do_rescale is not None else self.do_rescale
  				SCREAMING_SNAKE_CASE_			=	rescale_factor if rescale_factor is not None else self.rescale_factor
  				SCREAMING_SNAKE_CASE_			=	do_normalize if do_normalize is not None else self.do_normalize
  				SCREAMING_SNAKE_CASE_			=	image_mean if image_mean is not None else self.image_mean
  				SCREAMING_SNAKE_CASE_			=	image_std if image_std is not None else self.image_std
  
  				SCREAMING_SNAKE_CASE_			=	make_list_of_images(SCREAMING_SNAKE_CASE			)
  
  				if not valid_images(SCREAMING_SNAKE_CASE			):
  							raise ValueError(
  							    'Invalid image type. Must be of type PIL.Image.Image, numpy.ndarray, '
  							    'torch.Tensor, tf.Tensor or jax.ndarray.'			)
  
  				if do_resize and size is None:
  							raise ValueError('Size must be specified if do_resize is True.'			)
  
  				if do_rescale and rescale_factor is None:
  							raise ValueError('Rescale factor must be specified if do_rescale is True.'			)
  
  				if do_pad and size is None:
  							raise ValueError('Size must be specified if do_pad is True.'			)
  
  				if do_normalize and (image_mean is None or image_std is None):
  							raise ValueError('Image mean and std must be specified if do_normalize is True.'			)
  
  				# All transformations expect numpy arrays.
  				SCREAMING_SNAKE_CASE_			=	[to_numpy_array(SCREAMING_SNAKE_CASE			) for image in images]
  
  				if do_align_long_axis:
  							SCREAMING_SNAKE_CASE_			=	[self.align_long_axis(SCREAMING_SNAKE_CASE			,    size=SCREAMING_SNAKE_CASE			) for image in images]
  
  				if do_resize:
  							SCREAMING_SNAKE_CASE_			=	[self.resize(image=SCREAMING_SNAKE_CASE			,    size=SCREAMING_SNAKE_CASE			,    resample=SCREAMING_SNAKE_CASE			) for image in images]
  
  				if do_thumbnail:
  							SCREAMING_SNAKE_CASE_			=	[self.thumbnail(image=SCREAMING_SNAKE_CASE			,    size=SCREAMING_SNAKE_CASE			) for image in images]
  
  				if do_pad:
  							SCREAMING_SNAKE_CASE_			=	[self.pad_image(image=SCREAMING_SNAKE_CASE			,    size=SCREAMING_SNAKE_CASE			,    random_padding=SCREAMING_SNAKE_CASE			) for image in images]
  
  				if do_rescale:
  							SCREAMING_SNAKE_CASE_			=	[self.rescale(image=SCREAMING_SNAKE_CASE			,    scale=SCREAMING_SNAKE_CASE			) for image in images]
  
  				if do_normalize:
  							SCREAMING_SNAKE_CASE_			=	[self.normalize(image=SCREAMING_SNAKE_CASE			,    mean=SCREAMING_SNAKE_CASE			,    std=SCREAMING_SNAKE_CASE			) for image in images]
  
  				SCREAMING_SNAKE_CASE_			=	[to_channel_dimension_format(SCREAMING_SNAKE_CASE			,    SCREAMING_SNAKE_CASE			) for image in images]
  
  				SCREAMING_SNAKE_CASE_			=	{'pixel_values': images}
  				return BatchFeature(data=SCREAMING_SNAKE_CASE			,    tensor_type=SCREAMING_SNAKE_CASE			)
  