code: def __init__(self, v_max, node_hidden_size, num_prop_rounds):
      super(DGMG, self).__init__(v_max)
  
      # Graph embedding module
      self.graph_embed = GraphEmbed(node_hidden_size)
  
      # Graph propagation module
      self.graph_prop = GraphProp(num_prop_rounds, node_hidden_size)
  
      # Actions
      self.add_node_agent = AddNode(self.graph_embed, node_hidden_size)
      self.add_edge_agent = AddEdge(self.graph_embed, node_hidden_size)
      self.choose_dest_agent = ChooseDestAndUpdate(
          self.graph_prop, node_hidden_size
      )
  
      # Forward functions
      self.forward_train = partial(forward_train, self=self)
      self.forward_inference = partial(forward_inference, self=self)
  
imports: import os
  import dgl
  import torch.nn
  import torch
  from functools import partial
  import torch.nn.functional
  from torch.distributions import Bernoulli
  from torch.distributions import Categorical
  import torch.utils.model_zoo
label_desc: Use image node_id 1 to create a new DGMG object from inherited base classes: DGMGSkeleton with example: obj = DGMG(v_max, node_hidden_size, num_prop_rounds)