code: def forward_embedding(self, pos, batch):
      global_feat, local_feat = self.forward(pos, batch)
      indices = batch.unsqueeze(-1).repeat((1, global_feat.shape[-1]))
      gathered_global_feat = torch.gather(global_feat, 0, indices)
      x = torch.cat([local_feat, gathered_global_feat], -1)
      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 3 for calling the MiniPointNet obj's underlying member method code with example usage: obj.forward_embedding(pos, batch) and returns: x