class_docstr: The RelDN Model
class_docstr_tok: ["The","RelDN","Model"]
code: def forward(self, g):
      if g is None or g.number_of_nodes() == 0:
          return g
      # predictions
      g.apply_edges(self.freq_prior)
      if self.semantic_only:
          g.edata["preds"] = g.edata["freq_prior"]
      else:
          # bbox extension
          g.apply_edges(self.edge_bbox_extend)
          g.apply_edges(self.spatial)
          g.apply_edges(self.visual)
          g.edata["preds"] = (
              g.edata["freq_prior"]
              + g.edata["spatial"]
              + g.edata["visual"]
          )
      # subgraph for gconv
      g.apply_edges(self.edge_conf_mlp)
      return g
  
imports: import pickle
  import dgl
  import gluoncv
  import mxnet
  import numpy
  from dgl.nn.mxnet import GraphConv
  from dgl.utils import toindex
  from mxnet import nd
  from mxnet.gluon import nn
label_desc: Use image node_id 2 for calling the RelDN obj's underlying member method code with example usage: obj.forward(g) and returns: g, g