class_docstr: Approximate Personalized Propagation of Neural Predictions
  layer from `Predict then Propagate: Graph Neural Networks
  meet Personalized PageRank <https://arxiv.org/pdf/1810.05997.pdf>`__
  
  .. math::
      H^{0} & = X
  
      H^{t+1} & = (1-\alpha)\left(\hat{D}^{-1/2}
      \hat{A} \hat{D}^{-1/2} H^{t}\right) + \alpha H^{0}
  
  Parameters
  ----------
  k : int
      Number of iterations :math:`K`.
  alpha : float
      The teleport probability :math:`\alpha`.
  edge_drop : float, optional
      Dropout rate on edges that controls the
      messages received by each node. Default: ``0``.
code: def __init__(self, k, alpha, edge_drop=0.0):
      super(APPNPConv, self).__init__()
      self._k = k
      self._alpha = alpha
      self.edge_drop = layers.Dropout(edge_drop)
  
file_path: dgl/python/dgl/nn/tensorflow/conv/appnpconv.py
imports: import numpy
  import tensorflow
  from tensorflow.keras import layers
  from ....None import function
label_desc: Use image node_id 1 to create a new APPNPConv object from inherited base classes: layers with example: obj = APPNPConv(k, alpha, edge_drop)