class_docstr: Constructs a FLAVA feature extractor.
  
  This feature extractor inherits from [`FeatureExtractionMixin`] which contains most of the main methods. Users
  should refer to this superclass for more information regarding those methods.
  
  Args:
      do_resize (`bool`, *optional*, defaults to `True`):
          Whether to resize the input to a certain `size`.
      size (`int`, *optional*, defaults to 224):
          Resize the input to the given size. Only has an effect if `do_resize` is set to `True`.
      resample (`int`, *optional*, defaults to `PIL.Image.Resampling.BICUBIC`):
          An optional resampling filter. This can be one of `PIL.Image.Resampling.NEAREST`,
          `PIL.Image.Resampling.BOX`, `PIL.Image.Resampling.BILINEAR`, `PIL.Image.Resampling.HAMMING`,
          `PIL.Image.Resampling.BICUBIC` or `PIL.Image.Resampling.LANCZOS`. Only has an effect if `do_resize` is set
          to `True`.
      do_center_crop (`bool`, *optional*, defaults to `True`):
          Whether to crop the input at the center. If the input size is smaller than `crop_size` along any edge, the
          image is padded with 0's and then center cropped.
      crop_size (`int`, *optional*, defaults to 224):
          Desired output size when applying center-cropping. Only has an effect if `do_center_crop` is set to `True`.
      do_normalize (`bool`, *optional*, defaults to `True`):
          Whether or not to normalize the input with `image_mean` and `image_std`.
      image_mean (`Tuple[float, float, float]`, *optional*, defaults to `[0.485, 0.456, 0.406]`):
          The sequence of means for each channel, to be used when normalizing images.
      image_std (`Tuple[float, float, float]`, *optional*, defaults to `[0.229, 0.224, 0.225]`):
          The sequence of standard deviations for each channel, to be used when normalizing images.
      input_size_patches (`int`, *optional*, defaults to 14):
          Number of patches in the image in height and width direction. 14x14 = 196 total patches.
      total_mask_patches (`int`, *optional*, defaults to 75):
          Total number of patches that should be masked.
      mask_group_min_patches (`int`, *optional*, defaults to 16):
          Minimum number of patches that should be masked.
      mask_group_max_patches (`int`, *optional*, defaults to None):
          Maximum number of patches that should be masked.
      mask_group_min_aspect_ratio (`float`, *optional*, defaults to 0.3):
          Minimum aspect ratio of the mask window.
      mask_group_max_aspect_ratio (`float`, *optional*, defaults to None):
          Maximum aspect ratio of the mask window
      codebook_do_resize (`bool`, *optional*, defaults to `True`):
          Whether to resize the input for codebook to a certain `codebook_size`.
      codebook_size (`int`, *optional*, defaults to 224):
          Resize the input for codebook to the given size. Only has an effect if `codebook_do_resize` is set to
          `True`.
      codebook_resample (`int`, *optional*, defaults to `PIL.Image.Resampling.BICUBIC`):
          An optional resampling filter. This can be one of `PIL.Image.Resampling.NEAREST`,
          `PIL.Image.Resampling.BOX`, `PIL.Image.Resampling.BILINEAR`, `PIL.Image.Resampling.HAMMING`,
          `PIL.Image.Resampling.BICUBIC` or `PIL.Image.Resampling.LANCZOS`. Only has an effect if `do_resize` is set
          to `True`.
      codebook_do_center_crop (`bool`, *optional*, defaults to `True`):
          Whether to crop the input for codebook at the center. If the input size is smaller than
          `codebook_crop_size` along any edge, the image is padded with 0's and then center cropped.
      codebook_crop_size (`int`, *optional*, defaults to 224):
          Desired output size for codebook input when applying center-cropping. Only has an effect if
          `codebook_do_center_crop` is set to `True`.
      codebook_do_normalize (`bool`, *optional*, defaults to `True`):
          Whether or not to normalize the input for codebook with `codebook_image_mean` and `codebook_image_std`.
      codebook_image_mean (`Tuple[float, float, float]`, *optional*, defaults to `[0, 0, 0]`):
          The sequence of means for each channel, to be used when normalizing images for codebook.
      codebook_image_std (`Tuple[float, float, float]`, *optional*, defaults to `[0.5, 0.5, 0.5]`):
          The sequence of standard deviations for each channel, to be used when normalizing images for codebook.
docstr: Main method to prepare for the model one or several image(s).
  
  <Tip warning={true}>
  
  NumPy arrays and PyTorch tensors are converted to PIL images when resizing, so the most efficient is to pass
  PIL images.
  
  </Tip>
  
  Args:
      images (`PIL.Image.Image`, `np.ndarray`, `torch.Tensor`, `List[PIL.Image.Image]`, `List[np.ndarray]`, `List[torch.Tensor]`):
          The image or batch of images to be prepared. Each image can be a PIL image, NumPy array or PyTorch
          tensor. In case of a NumPy array/PyTorch tensor, each image should be of shape (C, H, W), where C is a
          number of channels, H and W are image height and width.
  
      return_image_mask (`bool`, *optional*, defaults to None):
          If True, the processor will return `bool_masked_pos` suggesting masks for image's patch version.
  
      return_codebook_pixels (`bool`, *optional*, defaults to None):
          If True, the processor will return `codebook_pixel_values` providing image pixels to be used with the
          default FLAVA codebook. Used in pretraining by Masked Image Modeling (MIM) loss.
  
      return_tensors (`str` or [`~utils.TensorType`], *optional*, defaults to `'np'`):
          If set, will return tensors of a particular framework. Acceptable values are:
  
          - `'tf'`: Return TensorFlow `tf.constant` objects.
          - `'pt'`: Return PyTorch `torch.Tensor` objects.
          - `'np'`: Return NumPy `np.ndarray` objects.
          - `'jax'`: Return JAX `jnp.ndarray` objects.
  
  Returns:
      [`BatchFeature`]: A [`BatchFeature`] with the following fields:
  
      - **pixel_values** -- Pixel values to be fed to a model.
docstr_tok: ["Main","method","to","prepare","for","the","model","one","or","several","image","(","s",")",".","<","Tip","warning=","{","true","}",">","NumPy","arrays","and","PyTorch","tensors","are","converted","to","PIL","images","when","resizing",",","so","the","most","efficient","is","to","pass","PIL","images",".","<","\/Tip",">","Args",":","images","(","`","PIL.Image.Image","`",",","`","np.ndarray","`",",","`","torch.Tensor","`",",","`","List","[","PIL.Image.Image","]","`",",","`","List","[","np.ndarray","]","`",",","`","List","[","torch.Tensor","]","`",")",":","The","image","or","batch","of","images","to","be","prepared",".","Each","image","can","be","a","PIL","image",",","NumPy","array","or","PyTorch","tensor",".","In","case","of","a","NumPy","array\/PyTorch","tensor",",","each","image","should","be","of","shape","(","C",",","H",",","W",")",",","where","C","is","a","number","of","channels",",","H","and","W","are","image","height","and","width",".","return_image_mask","(","`","bool","`",",","*","optional","*",",","defaults","to","None",")",":","If","True",",","the","processor","will","return","`","bool_masked_pos","`","suggesting","masks","for","image","'s","patch","version",".","return_codebook_pixels","(","`","bool","`",",","*","optional","*",",","defaults","to","None",")",":","If","True",",","the","processor","will","return","`","codebook_pixel_values","`","providing","image","pixels","to","be","used","with","the","default","FLAVA","codebook",".","Used","in","pretraining","by","Masked","Image","Modeling","(","MIM",")","loss",".","return_tensors","(","`","str","`","or","[","`","~utils.TensorType","`","]",",","*","optional","*",",","defaults","to","`","'np","'","`",")",":","If","set",",","will","return","tensors","of","a","particular","framework",".","Acceptable","values","are",":","-","`","'tf","'","`",":","Return","TensorFlow","`","tf.constant","`","objects",".","-","`","'pt","'","`",":","Return","PyTorch","`","torch.Tensor","`","objects",".","-","`","'np","'","`",":","Return","NumPy","`","np.ndarray","`","objects",".","-","`","'jax","'","`",":","Return","JAX","`","jnp.ndarray","`","objects",".","Returns",":","[","`","BatchFeature","`","]",":","A","[","`","BatchFeature","`","]","with","the","following","fields",":","-","*","*","pixel_values","*","*","--","Pixel","values","to","be","fed","to","a","model","."]
code: def __call__(
      self,
      images: Union[
          Image.Image,
          np.ndarray,
          "torch.Tensor",
          List[Image.Image],
          List[np.ndarray],
          List["torch.Tensor"],  # noqa
      ],
      return_image_mask: Optional[bool] = None,
      return_codebook_pixels: Optional[bool] = None,
      return_tensors: Optional[Union[str, TensorType]] = None,
      **kwargs: Any,
  ) -> BatchFeature:
      """
      Main method to prepare for the model one or several image(s).
  
      <Tip warning={true}>
  
      NumPy arrays and PyTorch tensors are converted to PIL images when resizing, so the most efficient is to pass
      PIL images.
  
      </Tip>
  
      Args:
          images (`PIL.Image.Image`, `np.ndarray`, `torch.Tensor`, `List[PIL.Image.Image]`, `List[np.ndarray]`, `List[torch.Tensor]`):
              The image or batch of images to be prepared. Each image can be a PIL image, NumPy array or PyTorch
              tensor. In case of a NumPy array/PyTorch tensor, each image should be of shape (C, H, W), where C is a
              number of channels, H and W are image height and width.
  
          return_image_mask (`bool`, *optional*, defaults to None):
              If True, the processor will return `bool_masked_pos` suggesting masks for image's patch version.
  
          return_codebook_pixels (`bool`, *optional*, defaults to None):
              If True, the processor will return `codebook_pixel_values` providing image pixels to be used with the
              default FLAVA codebook. Used in pretraining by Masked Image Modeling (MIM) loss.
  
          return_tensors (`str` or [`~utils.TensorType`], *optional*, defaults to `'np'`):
              If set, will return tensors of a particular framework. Acceptable values are:
  
              - `'tf'`: Return TensorFlow `tf.constant` objects.
              - `'pt'`: Return PyTorch `torch.Tensor` objects.
              - `'np'`: Return NumPy `np.ndarray` objects.
              - `'jax'`: Return JAX `jnp.ndarray` objects.
  
      Returns:
          [`BatchFeature`]: A [`BatchFeature`] with the following fields:
  
          - **pixel_values** -- Pixel values to be fed to a model.
      """
      # Input type checking for clearer error
      if isinstance(images, (list, tuple)) and len(images) != 0:
          self._ensure_format_supported(images[0])
      else:
          self._ensure_format_supported(images)
  
      is_batched = bool(
          isinstance(images, (list, tuple))
          and (
              isinstance(images[0], (Image.Image, np.ndarray))
              or is_torch_tensor(images[0])
          )
      )
  
      if not is_batched:
          images = [images]
  
      images_for_codebook = images
  
      # transformations (resizing + center cropping + normalization)
      if (
          self.do_resize
          and self.size is not None
          and self.resample is not None
      ):
          images = [
              self.resize(
                  image=image, size=self.size, resample=self.resample
              )
              for image in images
          ]
      if self.do_center_crop and self.crop_size is not None:
          images = [
              self.center_crop(image, self.crop_size)
              for image in images
          ]
      if self.do_normalize:
          images = [
              self.normalize(
                  image=image, mean=self.image_mean, std=self.image_std
              )
              for image in images
          ]
      # return as BatchFeature
      data = {"pixel_values": images}
  
      if return_codebook_pixels:
          images = images_for_codebook
          if (
              self.codebook_do_resize
              and self.codebook_size is not None
              and self.codebook_resample is not None
          ):
              images = [
                  self.resize(
                      image=image,
                      size=self.codebook_size,
                      resample=self.codebook_resample,
                  )
                  for image in images
              ]
          if (
              self.codebook_do_center_crop
              and self.codebook_crop_size is not None
          ):
              images = [
                  self.center_crop(image, self.codebook_crop_size)
                  for image in images
              ]
          if self.codebook_do_normalize:
              images = [
                  self.normalize(
                      image=image,
                      mean=self.codebook_image_mean,
                      std=self.codebook_image_std,
                  )
                  for image in images
              ]
          if self.codebook_do_map_pixels:
              images = [self.map_pixels(image) for image in images]
  
          data["codebook_pixel_values"] = images
  
      if return_image_mask:
          masks = [self.masking_generator() for _ in images]
          data["bool_masked_pos"] = masks
  
      encoded_inputs = BatchFeature(
          data=data, tensor_type=return_tensors
      )
  
      return encoded_inputs
  
imports: import math
  import random
  from functools import lru_cache
  from typing import Any, List, Optional, Tuple, Union
  import numpy
  from PIL import Image
  from transformers.image_utils import PILImageResampling
  from ...feature_extraction_utils import BatchFeature, FeatureExtractionMixin
  from ...image_utils import ImageFeatureExtractionMixin, is_torch_tensor
  from ...utils import TensorType, logging
label_desc: Use image node_id 4 for calling the FlavaFeatureExtractor obj's underlying member method code with example usage: obj.__call__(images, return_image_mask, return_codebook_pixels, return_tensors) and returns: encoded_inputs