code: def forward(self, g, node_state_prev):
      node_state = node_state_prev
  
      # if self.dropout:
      #     node_states = self.dropout(node_state)
  
      g = g.local_var()
  
      new_node_states = []
  
      ## perform weighted convolution for every channel of edge weight
      for c in range(self.num_channels):
          node_state_c = node_state
          if self._out_feats < self._in_feats:
              g.ndata["feat_" + str(c)] = torch.mm(
                  node_state_c, self.weight[:, :, c]
              )
          else:
              g.ndata["feat_" + str(c)] = node_state_c
          g.update_all(
              fn.u_mul_e("feat_" + str(c), "feat_" + str(c), "m"),
              fn.sum("m", "feat_" + str(c) + "_new"),
          )
          node_state_c = g.ndata.pop("feat_" + str(c) + "_new")
          if self._out_feats >= self._in_feats:
              node_state_c = torch.mm(
                  node_state_c, self.weight[:, :, c]
              )
          if self.bias is not None:
              node_state_c = node_state_c + self.bias[:, c]
          node_state_c = self.activation(node_state_c)
          new_node_states.append(node_state_c)
      if self.aggr_mode == "sum":
          node_states = torch.stack(new_node_states, dim=1).sum(1)
      elif self.aggr_mode == "concat":
          node_states = torch.cat(new_node_states, dim=1)
  
      node_states = self.final(node_states)
  
      return node_states
  
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 3 for calling the MWEConv obj's underlying member method code with example usage: obj.forward(g, node_state_prev) and returns: node_states