class_docstr: Constructs a ViLT 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 based on `size`.
      size (`int`, *optional*, defaults to 384):
          Resize the shorter side of the input to the given size. Should be an integer. The longer side will be
          limited to under int((1333 / 800) * size) while preserving the aspect ratio. Only has an effect if
          `do_resize` is set to `True`.
      size_divisor (`int`, *optional*, defaults to 32):
          The size by which to make sure both the height and width can be divided.
      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_normalize (`bool`, *optional*, defaults to `True`):
          Whether or not to normalize the input with mean and standard deviation.
      image_mean (`List[int]`, defaults to `[0.5, 0.5, 0.5]`):
          The sequence of means for each channel, to be used when normalizing images.
      image_std (`List[int]`, defaults to `[0.5, 0.5, 0.5]`):
          The sequence of standard deviations for each channel, to be used when normalizing images.
class_docstr_tok: ["Constructs","a","ViLT","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","based","on","`","size","`",".","size","(","`","int","`",",","*","optional","*",",","defaults","to","384",")",":","Resize","the","shorter","side","of","the","input","to","the","given","size",".","Should","be","an","integer",".","The","longer","side","will","be","limited","to","under","int","(","(","1333","\/","800",")","*","size",")","while","preserving","the","aspect","ratio",".","Only","has","an","effect","if","`","do_resize","`","is","set","to","`","True","`",".","size_divisor","(","`","int","`",",","*","optional","*",",","defaults","to","32",")",":","The","size","by","which","to","make","sure","both","the","height","and","width","can","be","divided",".","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_normalize","(","`","bool","`",",","*","optional","*",",","defaults","to","`","True","`",")",":","Whether","or","not","to","normalize","the","input","with","mean","and","standard","deviation",".","image_mean","(","`","List","[","int","]","`",",","defaults","to","`","[","0.5",",","0.5",",","0.5","]","`",")",":","The","sequence","of","means","for","each","channel",",","to","be","used","when","normalizing","images",".","image_std","(","`","List","[","int","]","`",",","defaults","to","`","[","0.5",",","0.5",",","0.5","]","`",")",":","The","sequence","of","standard","deviations","for","each","channel",",","to","be","used","when","normalizing","images","."]
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.
  
      pad_and_return_pixel_mask (`bool`, *optional*, defaults to `True`):
          Whether or not to pad images up to the largest image in a batch and create a pixel mask.
  
          If left to the default, will return a pixel mask that is:
  
          - 1 for pixels that are real (i.e. **not masked**),
          - 0 for pixels that are padding (i.e. **masked**).
  
      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, of shape (batch_size, num_channels, height,
        width).
      - **pixel_mask** -- Pixel mask to be fed to a model (when `return_pixel_mask=True` or if *"pixel_mask"* is
        in `self.model_input_names`).
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",".","pad_and_return_pixel_mask","(","`","bool","`",",","*","optional","*",",","defaults","to","`","True","`",")",":","Whether","or","not","to","pad","images","up","to","the","largest","image","in","a","batch","and","create","a","pixel","mask",".","If","left","to","the","default",",","will","return","a","pixel","mask","that","is",":","-","1","for","pixels","that","are","real","(","i.e",".","*","*","not","masked","*","*",")",",","-","0","for","pixels","that","are","padding","(","i.e",".","*","*","masked","*","*",")",".","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",",","of","shape","(","batch_size",",","num_channels",",","height",",","width",")",".","-","*","*","pixel_mask","*","*","--","Pixel","mask","to","be","fed","to","a","model","(","when","`","return_pixel_mask=True","`","or","if","*","''","pixel_mask","''","*","is","in","`","self.model_input_names","`",")","."]
code: def __call__(
      self,
      images: ImageInput,
      pad_and_return_pixel_mask: Optional[bool] = True,
      return_tensors: Optional[Union[str, TensorType]] = None,
      **kwargs,
  ) -> 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.
  
          pad_and_return_pixel_mask (`bool`, *optional*, defaults to `True`):
              Whether or not to pad images up to the largest image in a batch and create a pixel mask.
  
              If left to the default, will return a pixel mask that is:
  
              - 1 for pixels that are real (i.e. **not masked**),
              - 0 for pixels that are padding (i.e. **masked**).
  
          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, of shape (batch_size, num_channels, height,
            width).
          - **pixel_mask** -- Pixel mask to be fed to a model (when `return_pixel_mask=True` or if *"pixel_mask"* is
            in `self.model_input_names`).
      """
      # Input type checking for clearer error
      valid_images = False
  
      # Check that images has a valid type
      if isinstance(
          images, (Image.Image, np.ndarray)
      ) or is_torch_tensor(images):
          valid_images = True
      elif isinstance(images, (list, tuple)):
          if (
              len(images) == 0
              or isinstance(images[0], (Image.Image, np.ndarray))
              or is_torch_tensor(images[0])
          ):
              valid_images = True
  
      if not valid_images:
          raise ValueError(
              "Images must of type `PIL.Image.Image`, `np.ndarray` or `torch.Tensor` (single example), "
              "`List[PIL.Image.Image]`, `List[np.ndarray]` or `List[torch.Tensor]` (batch of examples)."
          )
  
      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]
  
      # transformations (resizing + normalization)
      if self.do_resize and self.size is not None:
          longer = int((1333 / 800) * self.size)
          images = [
              self._resize(
                  image=image,
                  shorter=self.size,
                  longer=longer,
                  size_divisor=self.size_divisor,
                  resample=self.resample,
              )
              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
          ]
  
      if pad_and_return_pixel_mask:
          # pad images up to largest image in batch and create pixel_mask
          max_size = self._max_by_axis(
              [list(image.shape) for image in images]
          )
          c, h, w = max_size
          padded_images = []
          pixel_mask = []
          for image in images:
              # create padded image
              padded_image = np.zeros((c, h, w), dtype=np.float32)
              padded_image[
                  : image.shape[0], : image.shape[1], : image.shape[2]
              ] = np.copy(image)
              padded_images.append(padded_image)
              # create pixel mask
              mask = np.zeros((h, w), dtype=np.int64)
              mask[: image.shape[1], : image.shape[2]] = True
              pixel_mask.append(mask)
          images = padded_images
  
      # return as BatchFeature
      data = {}
      data["pixel_values"] = images
      if pad_and_return_pixel_mask:
          data["pixel_mask"] = pixel_mask
      encoded_inputs = BatchFeature(
          data=data, tensor_type=return_tensors
      )
  
      return encoded_inputs
  
file_path: H2O/h2o_flexgen/benchmark/third_party/transformers/src/transformers/models/vilt/feature_extraction_vilt.py
imports: from typing import List, Optional, Union
  import numpy
  from PIL import Image
  from transformers.image_utils import PILImageResampling
  from ...feature_extraction_utils import BatchFeature, FeatureExtractionMixin
  from ...image_utils import IMAGENET_STANDARD_MEAN, IMAGENET_STANDARD_STD, ImageFeatureExtractionMixin, ImageInput, is_torch_tensor
  from ...utils import TensorType, is_torch_available, logging
label_desc: Use image node_id 5 for calling the ViltFeatureExtractor obj's underlying member method code with example usage: obj.__call__(images, pad_and_return_pixel_mask, return_tensors) and returns: encoded_inputs