code: def forward(self, g, node_state=None):
      node_state = torch.ones(g.num_nodes(), 1).float().to(self.device)
  
      node_state = self.layers[0](g, node_state)
  
      for layer in range(1, self.n_layers):
          node_state_new = self.layer_norms[layer - 1](node_state)
          node_state_new = self.activation(node_state_new)
          node_state_new = F.dropout(
              node_state_new, p=self.dropout, training=self.training
          )
  
          if self.residual == "true":
              node_state = node_state + self.layers[layer](
                  g, node_state_new
              )
          else:
              node_state = self.layers[layer](g, node_state_new)
  
      node_state = self.layer_norms[self.n_layers - 1](node_state)
      node_state = self.activation(node_state)
      node_state = F.dropout(
          node_state, p=self.dropout, training=self.training
      )
  
      out = self.pred_out(node_state)
  
      return out
  
imports: import math
  from functools import partial
  import dgl.function
  import dgl.nn.pytorch
  import torch
  import torch.nn
  import torch.nn.functional
  from dgl import function
  from dgl._ffi.base import DGLError
  from dgl.base import ALL
  from dgl.nn.pytorch.utils import Identity
  from dgl.ops import edge_softmax
  from dgl.utils import expand_as_pair
  from torch.nn import init
  from torch.utils.checkpoint import checkpoint
label_desc: Use image node_id 2 for calling the MWE_DGCN obj's underlying member method code with example usage: obj.forward(g, node_state) and returns: out