class_docstr: Implementation of Personalized Propagation of Neural Predictions (PPNP)
  as in https://arxiv.org/abs/1810.05997.
  
  The model minimally requires specification of the fully connected layer sizes as a list of int
  corresponding to the feature dimensions for each hidden layer,
  activation functions for each hidden layers, and a generator object.
  
  To use this class as a Keras model, the features and preprocessed adjacency matrix
  should be supplied using the :class:`.FullBatchNodeGenerator` class. To have the appropriate
  preprocessing the generator object should be instantiated as follows::
  
      generator = FullBatchNodeGenerator(G, method="ppnp")
  
  Notes:
    - The inputs are tensors with a batch dimension of 1. These are provided by the         :class:`.FullBatchNodeGenerator` object.
  
    - This assumes that the personalized page rank matrix is provided as input to
      Keras methods. When using the :class:`.FullBatchNodeGenerator` specify the
      ``method='ppnp'`` argument to do this preprocessing.
  
    - ``method='ppnp'`` requires that ``use_sparse=False`` and generates a dense personalized page rank matrix
  
    - The nodes provided to the :meth:`FullBatchNodeGenerator.flow` method are
      used by the final layer to select the predictions for those nodes in order.
      However, the intermediate layers before the final layer order the nodes
      in the same way as the adjacency matrix.
  
    - The size of the final fully connected layer must be equal to the number of classes to predict.
  
  .. seealso::
  
     Example using PPNP: `node classification <https://stellargraph.readthedocs.io/en/stable/demos/node-classification/ppnp-node-classification.html>`__.
  
     Appropriate data generators: :class:`.FullBatchNodeGenerator`, :class:`.FullBatchLinkGenerator`.
  
     :class:`.PPNPPropagationLayer` is the base layer out of which a PPNP model is built.
  
  Args:
      layer_sizes (list of int): list of output sizes of fully connected layers in the stack
      activations (list of str): list of activations applied to each fully connected layer's output
      generator (FullBatchNodeGenerator): an instance of FullBatchNodeGenerator class constructed on the graph of interest
      bias (bool): toggles an optional bias in fully connected layers
      dropout (float): dropout rate applied to input features of each layer
      kernel_regularizer (str): normalization applied to the kernels of fully connected layers
class_docstr_tok: ["Implementation","of","Personalized","Propagation","of","Neural","Predictions","(","PPNP",")","as","in","https",":","\/\/arxiv.org\/abs\/1810.05997",".","The","model","minimally","requires","specification","of","the","fully","connected","layer","sizes","as","a","list","of","int","corresponding","to","the","feature","dimensions","for","each","hidden","layer",",","activation","functions","for","each","hidden","layers",",","and","a","generator","object",".","To","use","this","class","as","a","Keras","model",",","the","features","and","preprocessed","adjacency","matrix","should","be","supplied","using","the",":","class",":","`",".FullBatchNodeGenerator","`","class",".","To","have","the","appropriate","preprocessing","the","generator","object","should","be","instantiated","as","follows",":",":","generator","=","FullBatchNodeGenerator","(","G",",","method=","''","ppnp","''",")","Notes",":","-","The","inputs","are","tensors","with","a","batch","dimension","of","1",".","These","are","provided","by","the",":","class",":","`",".FullBatchNodeGenerator","`","object",".","-","This","assumes","that","the","personalized","page","rank","matrix","is","provided","as","input","to","Keras","methods",".","When","using","the",":","class",":","`",".FullBatchNodeGenerator","`","specify","the","``","method='ppnp","'","``","argument","to","do","this","preprocessing",".","-","``","method='ppnp","'","``","requires","that","``","use_sparse=False","``","and","generates","a","dense","personalized","page","rank","matrix","-","The","nodes","provided","to","the",":","meth",":","`","FullBatchNodeGenerator.flow","`","method","are","used","by","the","final","layer","to","select","the","predictions","for","those","nodes","in","order",".","However",",","the","intermediate","layers","before","the","final","layer","order","the","nodes","in","the","same","way","as","the","adjacency","matrix",".","-","The","size","of","the","final","fully","connected","layer","must","be","equal","to","the","number","of","classes","to","predict",".","..","seealso",":",":","Example","using","PPNP",":","`","node","classification","<","https",":","\/\/stellargraph.readthedocs.io\/en\/stable\/demos\/node-classification\/ppnp-node-classification.html",">","`","__",".","Appropriate","data","generators",":",":","class",":","`",".FullBatchNodeGenerator","`",",",":","class",":","`",".FullBatchLinkGenerator","`",".",":","class",":","`",".PPNPPropagationLayer","`","is","the","base","layer","out","of","which","a","PPNP","model","is","built",".","Args",":","layer_sizes","(","list","of","int",")",":","list","of","output","sizes","of","fully","connected","layers","in","the","stack","activations","(","list","of","str",")",":","list","of","activations","applied","to","each","fully","connected","layer","'s","output","generator","(","FullBatchNodeGenerator",")",":","an","instance","of","FullBatchNodeGenerator","class","constructed","on","the","graph","of","interest","bias","(","bool",")",":","toggles","an","optional","bias","in","fully","connected","layers","dropout","(","float",")",":","dropout","rate","applied","to","input","features","of","each","layer","kernel_regularizer","(","str",")",":","normalization","applied","to","the","kernels","of","fully","connected","layers"]
code: def _node_model(self):
      if self.multiplicity != 1:
          warnings.warn(
              "Node model requested but a generator not supporting nodes was supplied."
          )
      return self.in_out_tensors(multiplicity=1)
  
imports: import warnings
  from tensorflow.keras.layers import Dense, Lambda, Layer, Dropout, Input
  import tensorflow.keras.backend
  import tensorflow
  import numpy
  from .misc import SqueezedSparseConversion, GatherIndices
  from ..mapper import FullBatchNodeGenerator
  from .misc import deprecated_model_function
  from .preprocessing_layer import GraphPreProcessingLayer
label_desc: Use image node_id 5 for calling the PPNP obj's underlying member method code with example usage: obj._node_model() and returns: self