code: def group_input(self, x_dict, node_type, local_node_idx, n_id=None):
      # Create global node feature matrix.
      if n_id is not None:
          node_type = node_type[n_id]
          local_node_idx = local_node_idx[n_id]
  
      h = torch.zeros(
          (node_type.size(0), self.in_channels), device=node_type.device
      )
  
      for key, x in x_dict.items():
          mask = node_type == key
          h[mask] = x[local_node_idx[mask]]
  
      for key, emb in self.emb_dict.items():
          mask = node_type == int(key)
          h[mask] = emb[local_node_idx[mask]]
  
      return h
  
imports: from copy import copy
  import argparse
  from tqdm.auto import tqdm
  import torch
  import torch.nn.functional
  from torch.nn import ModuleList, Linear, ParameterDict, Parameter
  from torch_sparse import SparseTensor
  from torch_geometric.utils import to_undirected
  from torch_geometric.data import NeighborSampler
  from torch_geometric.utils.hetero import group_hetero_graph
  from torch_geometric.nn import MessagePassing
  from ogb.nodeproppred import PygNodePropPredDataset, Evaluator
  from logger import Logger
label_desc: Use image node_id 3 for calling the RGCN obj's underlying member method code with example usage: obj.group_input(x_dict, node_type, local_node_idx, n_id) and returns: h