code: def _aggregate(self, x, cluster, unique_pos_indices):
      if self.aggr is None:
          return x[unique_pos_indices]
      elif self.aggr == "mean":
          return scatter_mean(x, cluster, dim=0)
      elif self.aggr == "max":
          res, _ = scatter_max(x, cluster, dim=0)
          return res
      else:
          raise NotImplementedError
  
imports: import torch
  import torch.nn
  from torch.nn import LeakyReLU, Linear, Sequential
  from torch_geometric.nn.pool.consecutive import consecutive_cluster
  from torch_geometric.nn import voxel_grid
  from torch_geometric.data import Batch
  from torch_scatter import scatter_max, scatter_mean
  from torch_points3d.applications.sparseconv3d import SparseConv3d
  from torch_points3d.core.common_modules import FastBatchNorm1d, Seq
  from torch_points3d.core.common_modules import MLP
  from torch_points3d.models.registration.base import FragmentBaseModel
label_desc: Use image node_id 3 for calling the UnetMSparseConv3d obj's underlying member method code with example usage: obj._aggregate(x, cluster, unique_pos_indices) and returns: x, scatter_mean, res