code: def forward(self, g, lg, x, y, deg_g, deg_lg, pm_pd):
      pmpd_x = F.embedding(pm_pd, x)
  
      sum_x = sum(
          theta(z)
          for theta, z in zip(self.theta_list, self.aggregate(g, x))
      )
  
      g.edata["y"] = y
      g.update_all(fn.copy_e(e="y", out="m"), fn.sum("m", "pmpd_y"))
      pmpd_y = g.ndata.pop("pmpd_y")
  
      x = (
          self.theta_x(x)
          + self.theta_deg(deg_g * x)
          + sum_x
          + self.theta_y(pmpd_y)
      )
      n = self.out_feats // 2
      x = th.cat([x[:, :n], F.relu(x[:, n:])], 1)
      x = self.bn_x(x)
  
      sum_y = sum(
          gamma(z)
          for gamma, z in zip(self.gamma_list, self.aggregate(lg, y))
      )
  
      y = (
          self.gamma_y(y)
          + self.gamma_deg(deg_lg * y)
          + sum_y
          + self.gamma_x(pmpd_x)
      )
      y = th.cat([y[:, :n], F.relu(y[:, n:])], 1)
      y = self.bn_y(y)
  
      return x, y
  
file_path: dgl/examples/pytorch/line_graph/gnn.py
imports: import copy
  import itertools
  import dgl
  import dgl.function
  import networkx
  import numpy
  import torch
  import torch.nn
  import torch.nn.functional
label_desc: Use image node_id 3 for calling the GNNModule obj's underlying member method code with example usage: obj.forward(g, lg, x, y, deg_g, deg_lg, pm_pd) and returns: x,  y