class_docstr: A simplified PNAConv variant used in OGB submissions
class_docstr_tok: ["A","simplified","PNAConv","variant","used","in","OGB","submissions"]
code: def forward(self, g, h):
      with g.local_scope():
          g.ndata["h"] = h
          g.update_all(fn.copy_u("h", "m"), self.reduce)
          h_new = g.ndata["h"]
      h_new = self.mlp(h_new)
  
      if self.bn is not None:
          h_new = self.bn(h_new)
      h_new = F.relu(h_new)
  
      if self.residual:
          h_new = h_new + h
      h_new = self.dropout(h_new)
  
      return h_new
  
imports: from typing import List
  import dgl.function
  import numpy
  import torch
  import torch.nn
  import torch.nn.functional
  from dgl.nn import AvgPooling, SumPooling
  from ogb.graphproppred.mol_encoder import AtomEncoder
label_desc: Use image node_id 3 for calling the SimplePNAConv obj's underlying member method code with example usage: obj.forward(g, h) and returns: h_new