class_docstr: A class to wrap stellargraph models for Deep Graph Infomax unsupervised training
  (https://arxiv.org/pdf/1809.10341.pdf).
  
  .. seealso::
  
     Examples using Deep Graph Infomax:
  
     - `unsupervised representation learning <https://stellargraph.readthedocs.io/en/stable/demos/embeddings/deep-graph-infomax-embeddings.html>`__
     - `semi-supervised node classification <https://stellargraph.readthedocs.io/en/stable/demos/node-classification/gcn-deep-graph-infomax-fine-tuning-node-classification.html>`__
  
     Appropriate data generator: :class:`.CorruptedGenerator`.
  
  Args:
      base_model: the base stellargraph model class
class_docstr_tok: ["A","class","to","wrap","stellargraph","models","for","Deep","Graph","Infomax","unsupervised","training","(","https",":","\/\/arxiv.org\/pdf\/1809.10341.pdf",")",".","..","seealso",":",":","Examples","using","Deep","Graph","Infomax",":","-","`","unsupervised","representation","learning","<","https",":","\/\/stellargraph.readthedocs.io\/en\/stable\/demos\/embeddings\/deep-graph-infomax-embeddings.html",">","`","__","-","`","semi-supervised","node","classification","<","https",":","\/\/stellargraph.readthedocs.io\/en\/stable\/demos\/node-classification\/gcn-deep-graph-infomax-fine-tuning-node-classification.html",">","`","__","Appropriate","data","generator",":",":","class",":","`",".CorruptedGenerator","`",".","Args",":","base_model",":","the","base","stellargraph","model","class"]
docstr: Deprecated: use ``base_model.in_out_tensors`` instead. Deep Graph Infomax just trains the base model,
  and the model behaves as usual after training.
docstr_tok: ["Deprecated",":","use","``","base_model.in_out_tensors","``","instead",".","Deep","Graph","Infomax","just","trains","the","base","model",",","and","the","model","behaves","as","usual","after","training","."]
code: def embedding_model(self):
      """
      Deprecated: use ``base_model.in_out_tensors`` instead. Deep Graph Infomax just trains the base model,
      and the model behaves as usual after training.
      """
  
      warnings.warn(
          f"The 'embedding_model' method is deprecated, use 'base_model.in_out_tensors' instead.",
          DeprecationWarning,
          stacklevel=2,
      )
  
      # these tensors should link into the weights that get trained by `build`
      x_emb_in, x_emb_out = self.base_model.in_out_tensors()
  
      # squeeze out batch dim of full batch models
      if len(x_emb_out.shape) == 3:
          squeeze_layer = Lambda(
              lambda x: K.squeeze(x, axis=0), name="squeeze"
          )
          x_emb_out = squeeze_layer(x_emb_out)
  
      return x_emb_in, x_emb_out
  
imports: from .None import GCN, GAT, APPNP, PPNP, GraphSAGE, DirectedGraphSAGE
  from .misc import deprecated_model_function
  from ..mapper import CorruptedGenerator
  from tensorflow.keras.layers import Input, Lambda, Layer, GlobalAveragePooling1D
  import tensorflow
  from tensorflow.keras import backend
  import warnings
  import numpy
label_desc: Use image node_id 3 for calling the DeepGraphInfomax obj's underlying member method code with example usage: obj.embedding_model() and returns: x_emb_in,  x_emb_out