code: def __init__(
      self,
      g,
      in_feats,
      n_classes,
      n_hidden,
      n_layers,
      activation,
      feat_drop,
      edge_drop,
      alpha,
      k,
  ):
      super(APPNP, self).__init__()
      self.g = g
      self.layers = nn.ModuleList()
      # input layer
      self.layers.append(nn.Linear(in_feats, n_hidden))
      # hidden layers
      for i in range(1, n_layers):
          self.layers.append(nn.Linear(n_hidden, n_hidden))
      # output layer
      self.layers.append(nn.Linear(n_hidden, n_classes))
      self.activation = activation
      if feat_drop:
          self.feat_drop = nn.Dropout(feat_drop)
      else:
          self.feat_drop = lambda x: x
      self.propagate = APPNPConv(k, alpha, edge_drop)
      self.reset_parameters()
  
imports: import torch
  import torch.nn
  from dgl.nn.pytorch import AGNNConv, APPNPConv, ChebConv, GATConv, GINConv, GraphConv, SAGEConv, SGConv, TAGConv
label_desc: Use image node_id 1 to create a new APPNP object from inherited base classes: nn with example: obj = APPNP(g, in_feats, n_classes, n_hidden, n_layers, activation, feat_drop, edge_drop, alpha, k)