code: def forward(self, graph, x, norm, *args):
      x = self.dropout_fn(x)
      x = self.linears[0](x)
      x = paddle.nn.ReLU()(x)
      x = self.dropout_fn(x)
      x = self.linears[1](x)
      x0 = x
      for hist in self.histories:  # appnp
          if norm is not None:
              x = x * norm
          x = graph.send_recv(x)
          if norm is not None:
              x = x * norm
          x = self.alpha * x0 + (1 - self.alpha) * x
          x = self.push_and_pull(hist, x, *args)
  
      if norm is not None:
          x = x * norm
      x = graph.send_recv(x)
      if norm is not None:
          x = x * norm
      x = self.alpha * x0 + (1 - self.alpha) * x
      return x
  
file_path: PGL/apps/GNNAutoScale/gnn_models/appnp.py
imports: import paddle
  import pgl
  import paddle.nn
  from .base_model import ScalableGNN
label_desc: Use image node_id 2 for calling the APPNP obj's underlying member method code with example usage: obj.forward(graph, x, norm) and returns: x