code: def __init__(
      self,
      g,
      in_feats,
      n_hidden,
      out_feats,
      n_layers,
      dim,
      n_kernels,
      dropout,
  ):
      super(MoNet, self).__init__()
      self.g = g
      self.layers = nn.ModuleList()
      self.pseudo_proj = nn.ModuleList()
  
      # Input layer
      self.layers.append(GMMConv(in_feats, n_hidden, dim, n_kernels))
      self.pseudo_proj.append(
          nn.Sequential(nn.Linear(2, dim), nn.Tanh())
      )
  
      # Hidden layer
      for _ in range(n_layers - 1):
          self.layers.append(
              GMMConv(n_hidden, n_hidden, dim, n_kernels)
          )
          self.pseudo_proj.append(
              nn.Sequential(nn.Linear(2, dim), nn.Tanh())
          )
  
      # Output layer
      self.layers.append(GMMConv(n_hidden, out_feats, dim, n_kernels))
      self.pseudo_proj.append(
          nn.Sequential(nn.Linear(2, dim), nn.Tanh())
      )
      self.dropout = nn.Dropout(dropout)
  
file_path: dgl/examples/pytorch/monet/citation.py
imports: import argparse
  import time
  import networkx
  import numpy
  import torch
  import torch.nn
  import torch.nn.functional
  from dgl import DGLGraph
  from dgl.data import load_data, register_data_args
  from dgl.nn.pytorch.conv import GMMConv
label_desc: Use image node_id 1 to create a new MoNet object from inherited base classes: nn with example: obj = MoNet(g, in_feats, n_hidden, out_feats, n_layers, dim, n_kernels, dropout)