code: def forward(self, g, node_features=None):
      _, dgl, _, _, torch, F, _ = lazy_import_networks()
  
      x = self.emb(self.node_ids)
      x = self.rgc1(g, x, g.edata[dgl.ETYPE], g.edata["norm"])
      if node_features is not None:
          x = F.relu(torch.cat([x, node_features], dim=1))
      else:
          x = F.relu(x)
      x = self.rgc2(
          g, self.dropout(x), g.edata[dgl.ETYPE], g.edata["norm"]
      )
      return self.dropout(x)
  
imports: from typing import TYPE_CHECKING, Any
  from .None import constants
  import logging
label_desc: Use image node_id 2 for calling the RGCNEmbed obj's underlying member method code with example usage: obj.forward(g, node_features) and returns: self