code: def forward(self, x):
      B, C, H, W = x.shape
      if not self.fir:
          h = F.interpolate(x, (H * 2, W * 2), "nearest")
          if self.with_conv:
              h = self.Conv_0(h)
      else:
          if not self.with_conv:
              h = up_or_down_sampling.upsample_2d(
                  x, self.fir_kernel, factor=2
              )
          else:
              h = self.Conv2d_0(x)
  
      return h
  
imports: import numpy
  import torch
  import torch.nn
  import torch.nn.functional
  from espnet2.enh.layers.ncsnpp_utils import layers, up_or_down_sampling
label_desc: Use image node_id 2 for calling the Upsample obj's underlying member method code with example usage: obj.forward(x) and returns: h