class_docstr: Class that wraps a given `Keras` model to include graph regularization.
  
  Graph regularization is configured by an instance of
  `nsl.configs.GraphRegConfig` and the resulting loss is added as a
  regularization term to the model's training objective. The graph-regularized
  model reuses the layers and variables from the base model. So, training this
  model will also update the variables in the base model.
  
  Note: This class expects input data to include neighor features corresponding
  to the maximum number of neighbors used for graph regularization.
  
  Example usage:
  
  ```python
  # Create a base model using the sequential, functional, or subclass API.
  base_model = tf.keras.Sequential(...)
  
  # Wrap the base model to include graph regularization using up to 1 neighbor
  # per sample.
  graph_config = nsl.configs.make_graph_reg_config(max_neighbors=1)
  graph_model = nsl.keras.GraphRegularization(base_model, graph_config)
  
  # Compile, train, and evaluate the graph-regularized model as usual.
  graph_model.compile(
      optimizer='adam',
      loss=tf.keras.losses.SparseCategoricalCrossentropy(),
      metrics=['accuracy'])
  graph_model.fit(train_dataset, epochs=5)
  graph_model.evaluate(test_dataset)
  ```
code: def predict(self, *args, **kwargs):
      return self.base_model.predict(*args, **kwargs)
  
file_path: neural-structured-learning/neural_structured_learning/keras/graph_regularization.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import neural_structured_learning.configs
  from neural_structured_learning.keras import layers
  import tensorflow
label_desc: Use image node_id 4 for calling the GraphRegularization obj's underlying member method code with example usage: obj.predict() and returns: self