code: def __init__(self, v_max, node_hidden_size, num_prop_rounds):
      super(DGMG, self).__init__()
  
      # Graph configuration
      self.v_max = 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
      )
  
      # Weight initialization
      self.init_weights()
  
imports: from functools import partial
  import dgl
  import torch
  import torch.nn
  import torch.nn.functional
  from torch.distributions import Bernoulli, Categorical
label_desc: Use image node_id 1 to create a new DGMG object from inherited base classes: nn with example: obj = DGMG(v_max, node_hidden_size, num_prop_rounds)