code: def forward(self, graph, feat, eweight=None):
      with graph.local_scope():
          graph.ndata["h"] = feat
  
          if eweight is None:
              graph.update_all(fn.copy_u("h", "m"), fn.mean("m", "h"))
          else:
              graph.edata["ew"] = eweight
              graph.update_all(
                  fn.u_mul_e("h", "ew", "m"), fn.mean("m", "h")
              )
  
          h = self.layer(th.cat([graph.ndata["h"], feat], dim=-1))
  
          return h
  
file_path: dgl/examples/pytorch/gnn_explainer/models.py
imports: import dgl.function
  import torch
  import torch.nn
  import torch.nn.functional
label_desc: Use image node_id 2 for calling the Layer obj's underlying member method code with example usage: obj.forward(graph, feat, eweight) and returns: h