code: def forward(self, x, batch):
      y = x = self._local_nn(
          x
      )  # [num_points, in_dim] -> [num_points, local_out_nn]
      if batch is not None:
          x = self.g_pool(
              x, batch
          )  # [num_points, local_out_nn] -> [local_out_nn]
      else:
          x = x.max(1)[0] if self._aggr == "max" else x.mean(1)
      if self._global_nn:
          x = self._global_nn(x)  # [local_out_nn] -> [global_out_nn]
      if self.return_local_out:
          return x, y
      return x
  
imports: import torch
  from torch_geometric.nn import global_max_pool, global_mean_pool
  from torch_points3d.core.common_modules.base_modules import *
  from torch_points3d.core.common_modules.spatial_transform import BaseLinearTransformSTNkD
  from torch_points3d.models.base_model import BaseInternalLossModule
label_desc: Use image node_id 2 for calling the MiniPointNet obj's underlying member method code with example usage: obj.forward(x, batch) and returns: x, x,  y