class_docstr: visual feature branch
class_docstr_tok: ["visual","feature","branch"]
code: def __init__(self, n_classes, vis_feat_dim=7 * 7 * 3):
      super(EdgeVisual, self).__init__()
      self.dim_in = vis_feat_dim
      self.mlp_joint = nn.Sequential()
      self.mlp_joint.add(nn.Dense(vis_feat_dim // 2))
      self.mlp_joint.add(nn.LeakyReLU(0.1))
      self.mlp_joint.add(nn.Dense(vis_feat_dim // 3))
      self.mlp_joint.add(nn.LeakyReLU(0.1))
      self.mlp_joint.add(nn.Dense(n_classes))
  
      self.mlp_sub = nn.Dense(n_classes)
      self.mlp_ob = nn.Dense(n_classes)
  
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 1 to create a new EdgeVisual object from inherited base classes: nn with example: obj = EdgeVisual(n_classes, vis_feat_dim)