code: def __init__(
      self,
      in_feats,
      out_feats,
      activation,
      bias=True,
      num_channels=8,
      aggr_mode="sum",
  ):
      super(MWEConv, self).__init__()
      self.num_channels = num_channels
      self._in_feats = in_feats
      self._out_feats = out_feats
      self.weight = nn.Parameter(
          torch.Tensor(in_feats, out_feats, num_channels)
      )
  
      if bias:
          self.bias = nn.Parameter(
              torch.Tensor(out_feats, num_channels)
          )
      else:
          self.bias = None
      self.reset_parameters()
      self.activation = activation
  
      if aggr_mode == "concat":
          self.aggr_mode = "concat"
          self.final = nn.Linear(
              out_feats * self.num_channels, out_feats
          )
      elif aggr_mode == "sum":
          self.aggr_mode = "sum"
          self.final = nn.Linear(out_feats, out_feats)
  
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 1 to create a new MWEConv object from inherited base classes: nn with example: obj = MWEConv(in_feats, out_feats, activation, bias, num_channels, aggr_mode)