class_docstr: Constructs a DPT image processor.
  
  Args:
      do_resize (`bool`, *optional*, defaults to `True`):
          Whether to resize the image's (height, width) dimensions. Can be overidden by `do_resize` in `preprocess`.
      size (`Dict[str, int]` *optional*, defaults to `{"height": 384, "width": 384}`):
          Size of the image after resizing. Can be overidden by `size` in `preprocess`.
      resample (`PILImageResampling`, *optional*, defaults to `Resampling.BICUBIC`):
          Defines the resampling filter to use if resizing the image. Can be overidden by `resample` in `preprocess`.
      keep_aspect_ratio (`bool`, *optional*, defaults to `False`):
          If `True`, the image is resized to the largest possible size such that the aspect ratio is preserved. Can
          be overidden by `keep_aspect_ratio` in `preprocess`.
      ensure_multiple_of (`int`, *optional*, defaults to 1):
          If `do_resize` is `True`, the image is resized to a size that is a multiple of this value. Can be overidden
          by `ensure_multiple_of` in `preprocess`.
      do_rescale (`bool`, *optional*, defaults to `True`):
          Whether to rescale the image by the specified scale `rescale_factor`. Can be overidden by `do_rescale` in
          `preprocess`.
      rescale_factor (`int` or `float`, *optional*, defaults to `1/255`):
          Scale factor to use if rescaling the image. Can be overidden by `rescale_factor` in `preprocess`.
      do_normalize (`bool`, *optional*, defaults to `True`):
          Whether to normalize the image. Can be overridden by the `do_normalize` parameter in the `preprocess`
          method.
      image_mean (`float` or `List[float]`, *optional*, defaults to `IMAGENET_STANDARD_MEAN`):
          Mean to use if normalizing the image. This is a float or list of floats the length of the number of
          channels in the image. Can be overridden by the `image_mean` parameter in the `preprocess` method.
      image_std (`float` or `List[float]`, *optional*, defaults to `IMAGENET_STANDARD_STD`):
          Standard deviation to use if normalizing the image. This is a float or list of floats the length of the
          number of channels in the image. Can be overridden by the `image_std` parameter in the `preprocess` method.
      do_pad (`bool`, *optional*, defaults to `False`):
          Whether to apply center padding. This was introduced in the DINOv2 paper, which uses the model in
          combination with DPT.
      size_divisor (`int`, *optional*):
          If `do_pad` is `True`, pads the image dimensions to be divisible by this value. This was introduced in the
          DINOv2 paper, which uses the model in combination with DPT.
class_docstr_tok: ["Constructs","a","DPT","image","processor",".","Args",":","do_resize","(","`","bool","`",",","*","optional","*",",","defaults","to","`","True","`",")",":","Whether","to","resize","the","image","'s","(","height",",","width",")","dimensions",".","Can","be","overidden","by","`","do_resize","`","in","`","preprocess","`",".","size","(","`","Dict","[","str",",","int","]","`","*","optional","*",",","defaults","to","`","{","``","height","''",":","384",",","``","width","''",":","384","}","`",")",":","Size","of","the","image","after","resizing",".","Can","be","overidden","by","`","size","`","in","`","preprocess","`",".","resample","(","`","PILImageResampling","`",",","*","optional","*",",","defaults","to","`","Resampling.BICUBIC","`",")",":","Defines","the","resampling","filter","to","use","if","resizing","the","image",".","Can","be","overidden","by","`","resample","`","in","`","preprocess","`",".","keep_aspect_ratio","(","`","bool","`",",","*","optional","*",",","defaults","to","`","False","`",")",":","If","`","True","`",",","the","image","is","resized","to","the","largest","possible","size","such","that","the","aspect","ratio","is","preserved",".","Can","be","overidden","by","`","keep_aspect_ratio","`","in","`","preprocess","`",".","ensure_multiple_of","(","`","int","`",",","*","optional","*",",","defaults","to","1",")",":","If","`","do_resize","`","is","`","True","`",",","the","image","is","resized","to","a","size","that","is","a","multiple","of","this","value",".","Can","be","overidden","by","`","ensure_multiple_of","`","in","`","preprocess","`",".","do_rescale","(","`","bool","`",",","*","optional","*",",","defaults","to","`","True","`",")",":","Whether","to","rescale","the","image","by","the","specified","scale","`","rescale_factor","`",".","Can","be","overidden","by","`","do_rescale","`","in","`","preprocess","`",".","rescale_factor","(","`","int","`","or","`","float","`",",","*","optional","*",",","defaults","to","`","1\/255","`",")",":","Scale","factor","to","use","if","rescaling","the","image",".","Can","be","overidden","by","`","rescale_factor","`","in","`","preprocess","`",".","do_normalize","(","`","bool","`",",","*","optional","*",",","defaults","to","`","True","`",")",":","Whether","to","normalize","the","image",".","Can","be","overridden","by","the","`","do_normalize","`","parameter","in","the","`","preprocess","`","method",".","image_mean","(","`","float","`","or","`","List","[","float","]","`",",","*","optional","*",",","defaults","to","`","IMAGENET_STANDARD_MEAN","`",")",":","Mean","to","use","if","normalizing","the","image",".","This","is","a","float","or","list","of","floats","the","length","of","the","number","of","channels","in","the","image",".","Can","be","overridden","by","the","`","image_mean","`","parameter","in","the","`","preprocess","`","method",".","image_std","(","`","float","`","or","`","List","[","float","]","`",",","*","optional","*",",","defaults","to","`","IMAGENET_STANDARD_STD","`",")",":","Standard","deviation","to","use","if","normalizing","the","image",".","This","is","a","float","or","list","of","floats","the","length","of","the","number","of","channels","in","the","image",".","Can","be","overridden","by","the","`","image_std","`","parameter","in","the","`","preprocess","`","method",".","do_pad","(","`","bool","`",",","*","optional","*",",","defaults","to","`","False","`",")",":","Whether","to","apply","center","padding",".","This","was","introduced","in","the","DINOv2","paper",",","which","uses","the","model","in","combination","with","DPT",".","size_divisor","(","`","int","`",",","*","optional","*",")",":","If","`","do_pad","`","is","`","True","`",",","pads","the","image","dimensions","to","be","divisible","by","this","value",".","This","was","introduced","in","the","DINOv2","paper",",","which","uses","the","model","in","combination","with","DPT","."]
docstr: Converts the output of [`DPTForSemanticSegmentation`] into semantic segmentation maps. Only supports PyTorch.
  
  Args:
      outputs ([`DPTForSemanticSegmentation`]):
          Raw outputs of the model.
      target_sizes (`List[Tuple]` of length `batch_size`, *optional*):
          List of tuples corresponding to the requested final size (height, width) of each prediction. If unset,
          predictions will not be resized.
  
  Returns:
      semantic_segmentation: `List[torch.Tensor]` of length `batch_size`, where each item is a semantic
      segmentation map of shape (height, width) corresponding to the target_sizes entry (if `target_sizes` is
      specified). Each entry of each `torch.Tensor` correspond to a semantic class id.
docstr_tok: ["Converts","the","output","of","[","`","DPTForSemanticSegmentation","`","]","into","semantic","segmentation","maps",".","Only","supports","PyTorch",".","Args",":","outputs","(","[","`","DPTForSemanticSegmentation","`","]",")",":","Raw","outputs","of","the","model",".","target_sizes","(","`","List","[","Tuple","]","`","of","length","`","batch_size","`",",","*","optional","*",")",":","List","of","tuples","corresponding","to","the","requested","final","size","(","height",",","width",")","of","each","prediction",".","If","unset",",","predictions","will","not","be","resized",".","Returns",":","semantic_segmentation",":","`","List","[","torch.Tensor","]","`","of","length","`","batch_size","`",",","where","each","item","is","a","semantic","segmentation","map","of","shape","(","height",",","width",")","corresponding","to","the","target_sizes","entry","(","if","`","target_sizes","`","is","specified",")",".","Each","entry","of","each","`","torch.Tensor","`","correspond","to","a","semantic","class","id","."]
code: def post_process_semantic_segmentation(
      self, outputs, target_sizes: List[Tuple] = None
  ):
      """
      Converts the output of [`DPTForSemanticSegmentation`] into semantic segmentation maps. Only supports PyTorch.
  
      Args:
          outputs ([`DPTForSemanticSegmentation`]):
              Raw outputs of the model.
          target_sizes (`List[Tuple]` of length `batch_size`, *optional*):
              List of tuples corresponding to the requested final size (height, width) of each prediction. If unset,
              predictions will not be resized.
  
      Returns:
          semantic_segmentation: `List[torch.Tensor]` of length `batch_size`, where each item is a semantic
          segmentation map of shape (height, width) corresponding to the target_sizes entry (if `target_sizes` is
          specified). Each entry of each `torch.Tensor` correspond to a semantic class id.
      """
      # TODO: add support for other frameworks
      logits = outputs.logits
  
      # Resize logits and compute semantic segmentation maps
      if target_sizes is not None:
          if len(logits) != len(target_sizes):
              raise ValueError(
                  "Make sure that you pass in as many target sizes as the batch dimension of the logits"
              )
  
          if is_torch_tensor(target_sizes):
              target_sizes = target_sizes.numpy()
  
          semantic_segmentation = []
  
          for idx in range(len(logits)):
              resized_logits = torch.nn.functional.interpolate(
                  logits[idx].unsqueeze(dim=0),
                  size=target_sizes[idx],
                  mode="bilinear",
                  align_corners=False,
              )
              semantic_map = resized_logits[0].argmax(dim=0)
              semantic_segmentation.append(semantic_map)
      else:
          semantic_segmentation = logits.argmax(dim=1)
          semantic_segmentation = [
              semantic_segmentation[i]
              for i in range(semantic_segmentation.shape[0])
          ]
  
      return semantic_segmentation
  
file_path: transformers/src/transformers/models/dpt/image_processing_dpt.py
imports: import math
  from typing import Dict, Iterable, List, Optional, Tuple, Union
  import numpy
  from ...image_processing_utils import BaseImageProcessor, BatchFeature, get_size_dict
  from ...image_transforms import pad, resize, to_channel_dimension_format
  from ...image_utils import IMAGENET_STANDARD_MEAN, IMAGENET_STANDARD_STD, ChannelDimension, ImageInput, PILImageResampling, get_image_size, infer_channel_dimension_format, is_scaled_image, is_torch_available, is_torch_tensor, make_list_of_images, to_numpy_array, valid_images
  from ...utils import TensorType, is_vision_available, logging
label_desc: Use image node_id 5 for calling the DPTImageProcessor obj's underlying member method code with example usage: obj.post_process_semantic_segmentation(outputs, target_sizes) and returns: semantic_segmentation