class_docstr: Create message passing layers for the MOGONET method. Each layer is defined as:
  
  .. math::
      H^{(l+1)}=f(H^{(l)}, A) = \sigma(AH^{(l)}W^{(l)})
  
  where :math:`\mathbf{H^{(l)}}` is the input of the :math:`l`-th layer and :math:`\mathbf{W^{(l)}}` is the weight
  matrix of the :math:`l`-th layer. :math:`\sigma(.)` denotes a non-linear activation function.
  
  For more information please refer to the MOGONET paper.
  
  Args:
      in_channels (int): Size of each input sample.
      out_channels (int): Size of each output sample.
      bias (bool, optional): If set to ``False``, the layer will not learn an additive bias. (default: ``True``)
      aggr (string or list or Aggregation, optional): The aggregation scheme to use,
          *e.g.*, ``"add"``, ``"sum"``, ``"mean"``, ``"min"``, ``"max"`` or ``"mul"``.
      **kwargs (optional): Additional arguments of :class:`torch_geometric.nn.conv.MessagePassing`.
docstr: Update node embeddings for each node :math:`i \in \mathcal{V}`.
docstr_tok: ["Update","node","embeddings","for","each","node",":","math",":","`","i","\\in","\\mathcal","{","V","}","`","."]
code: def update(self, aggr_out: Tensor) -> Tensor:
      r"""Update node embeddings for each node :math:`i \in \mathcal{V}`."""
      if self.bias is not None:
          aggr_out = aggr_out + self.bias
      return aggr_out
  
imports: from typing import List, Optional, Union
  import torch
  import torch.nn.functional
  import torch_sparse
  from torch import Tensor
  from torch.nn import Module, Parameter
  from torch.nn.init import xavier_normal_
  from torch_geometric.nn.aggr import Aggregation
  from torch_geometric.nn.conv import MessagePassing
  from torch_sparse import SparseTensor
label_desc: Use image node_id 6 for calling the MogonetGCNConv obj's underlying member method code with example usage: obj.update(aggr_out) and returns: aggr_out