code: def forward(self, g, nids=None):
      if self.ns_mode:
          # forward for neighbor sampling
          x = self.emb(g[0].srcdata[dgl.NID])
          h = self.conv1(
              g[0], x, g[0].edata[dgl.ETYPE], g[0].edata["norm"]
          )
          h = self.dropout(F.relu(h))
          h = self.conv2(
              g[1], h, g[1].edata[dgl.ETYPE], g[1].edata["norm"]
          )
          return h
      else:
          x = self.emb.weight if nids is None else self.emb(nids)
          h = self.conv1(g, x, g.edata[dgl.ETYPE], g.edata["norm"])
          h = self.dropout(F.relu(h))
          h = self.conv2(g, h, g.edata[dgl.ETYPE], g.edata["norm"])
          return h
  
file_path: dgl/benchmarks/benchmarks/rgcn.py
imports: import dgl
  import torch
  import torch.nn
  import torch.nn.functional
  from dgl.nn.pytorch import RelGraphConv
  from .None import utils
label_desc: Use image node_id 2 for calling the RGCN obj's underlying member method code with example usage: obj.forward(g, nids) and returns: h, h