class_docstr: Upsampling with a skip connection.
code: def forward(self, x, pos, batch, x_skip, pos_skip, batch_skip):
      x = knn_interpolate(x, pos, pos_skip, batch, batch_skip, k=self.k)
      x = torch.cat([x, x_skip], dim=1)
      x = self.nn(x)
      return x, pos_skip, batch_skip
  
imports: import os.path
  import torch
  import torch.nn.functional
  from randlanet_classification import DilatedResidualBlock, SharedMLP, decimate
  from torch.nn import Linear
  from torchmetrics.functional import jaccard_index
  from tqdm import tqdm
  import torch_geometric.transforms
  from torch_geometric.datasets import ShapeNet
  from torch_geometric.loader import DataLoader
  from torch_geometric.nn import knn_interpolate
  from torch_geometric.typing import WITH_TORCH_CLUSTER
  from torch_geometric.utils import scatter
label_desc: Use image node_id 2 for calling the FPModule obj's underlying member method code with example usage: obj.forward(x, pos, batch, x_skip, pos_skip, batch_skip) and returns: x,  pos_skip,  batch_skip