class_docstr: A single DGN tower with modified reduce function
docstr: message function for DGN layer
docstr_tok: ["message","function","for","DGN","layer"]
code: def message(self, edges):
      """message function for DGN layer"""
      if self.edge_feat_size > 0:
          f = torch.cat(
              [edges.src["h"], edges.dst["h"], edges.data["a"]], dim=-1
          )
      else:
          f = torch.cat([edges.src["h"], edges.dst["h"]], dim=-1)
      return {
          "msg": self.M(f),
          "eig_s": edges.src["eig"],
          "eig_d": edges.dst["eig"],
      }
  
file_path: dgl/python/dgl/nn/pytorch/conv/dgnconv.py
imports: from functools import partial
  import torch
  import torch.nn
  from .pnaconv import AGGREGATORS, PNAConv, PNAConvTower, SCALERS
label_desc: Use image node_id 1 for calling the DGNConvTower obj's underlying member method code with example usage: obj.message(edges) and returns: dict