class_docstr: Last layers of a DensePose model that take DensePose head outputs as an input
  and produce model outputs for continuous surface embeddings (CSE).
docstr: Bilinear interpolation method to be used for upscaling
  
  Args:
      tensor_nchw (tensor): tensor of shape (N, C, H, W)
  Return:
      tensor of shape (N, C, Hout, Wout), where Hout and Wout are computed
          by applying the scale factor to H and W
code: def interp2d(self, tensor_nchw: torch.Tensor):
      """
      Bilinear interpolation method to be used for upscaling
  
      Args:
          tensor_nchw (tensor): tensor of shape (N, C, H, W)
      Return:
          tensor of shape (N, C, Hout, Wout), where Hout and Wout are computed
              by applying the scale factor to H and W
      """
      return interpolate(
          tensor_nchw,
          scale_factor=self.scale_factor,
          mode="bilinear",
          align_corners=False,
      )
  
file_path: detectron2/projects/DensePose/densepose/modeling/predictors/cse.py
imports: import torch
  from torch import nn
  from detectron2.config import CfgNode
  from detectron2.layers import ConvTranspose2d, interpolate
  from ...structures import DensePoseEmbeddingPredictorOutput
  from ..utils import initialize_module_params
  from .registry import DENSEPOSE_PREDICTOR_REGISTRY
label_desc: Use image node_id 2 for calling the DensePoseEmbeddingPredictor obj's underlying member method code with example usage: obj.interp2d(tensor_nchw) and returns: interpolate