class_docstr: A simplified PNAConv variant used in OGB submissions
class_docstr_tok: ["A","simplified","PNAConv","variant","used","in","OGB","submissions"]
code: def __init__(
      self,
      feat_size: int,
      aggregators: List[str],
      scalers: List[str],
      delta: float,
      dropout: float,
      batch_norm: bool,
      residual: bool,
      num_mlp_layers: int,
  ):
      super(SimplePNAConv, self).__init__()
  
      self.aggregators = [AGGREGATORS[aggr] for aggr in aggregators]
      self.scalers = [SCALERS[scale] for scale in scalers]
      self.delta = delta
      self.mlp = MLP(
          in_feat_size=(len(aggregators) * len(scalers)) * feat_size,
          out_feat_size=feat_size,
          num_layers=num_mlp_layers,
      )
      self.dropout = nn.Dropout(dropout)
      self.residual = residual
  
      if batch_norm:
          self.bn = nn.BatchNorm1d(feat_size)
      else:
          self.bn = None
  
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 1 to create a new SimplePNAConv object from inherited base classes: nn with example: obj = SimplePNAConv(feat_size, aggregators, scalers, delta, dropout, batch_norm, residual, num_mlp_layers)